Adam
Adam

Reputation: 6122

The type 'RestService.weddingservice', provided as the Service attribute value in the ServiceHost directive could not be found

Im trying to create my first WCF restful service. In VS2010 I open weddingservice.svc and then hit F5. A browser opens to http://localhost:50043/weddingservice.svc But there, this is the error I get:

Server Error in '/' Application.

The type 'RestService.weddingservice', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The type 'RestService.weddingservice', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[InvalidOperationException: The type 'RestService.weddingservice', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.]
   System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +51530
   System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1461
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +44
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +651

[ServiceActivationException: The service '/weddingservice.svc' cannot be activated due to an exception during compilation.  The exception message is: The type 'RestService.weddingservice', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +688590
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, String routeServiceVirtualPath, Boolean flowContext, Boolean ensureWFService) +234
   System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +359
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

Below my code, I hope anyone is able to see what Im doing wrong. Am I not using the correct URI? What did I miss?

weddingservice.svc

<%@ ServiceHost Language="VB" Debug="true" Service="RestService.weddingservice" CodeBehind="weddingservice.svc.vb" %>

Iweddingservice.vb

Imports System.ServiceModel
Imports System.Web
Imports System.IO
Imports System.Runtime.Remoting.Activation
Imports System.Collections.Generic

Namespace RestService
<ServiceContract()>
Public Interface Iweddingservice

    <OperationContract()> _
<Web.WebGet(UriTemplate:="job/{name}")> _
    Function DoJob(name As String) As String

End Interface
End Namespace

weddingservice.svc.vb

Imports System.ServiceModel
Imports System.ServiceModel.Web
Imports System.IO
Imports System.ServiceModel.Activation
Imports System.Web.Script.Serialization
Imports System.Collections.Generic
Imports System.Xml
Imports System.Net

Namespace RestService
    Public Class weddingservice
        Implements Iweddingservice

        Public Function DoJob(name As String) As String Implements Iweddingservice.DoJob
            Return String.Format("Hello, {0}", name)
        End Function
    End Class
End Namespace

web.config

<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  <services>
    <service name="weddingservice">
      <endpoint binding="webHttpBinding" contract="RestService.Iweddingservice" behaviorConfiguration="webHttp"/>
    </service>
  </services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="webHttp">
      <webHttp/>
    </behavior>
  </endpointBehaviors>
</behaviors>
</system.serviceModel>  

Upvotes: 3

Views: 14244

Answers (6)

user2197446
user2197446

Reputation: 1146

My project had the dlls being built to a folder under the bin directory to match the configuration name, so if the project name was DemoWCF and the configuration was Debug the dll would be here:

/bin/Debug/DemoWCF.dll

When I removed the Debug/ from the output path and built the dll to here:

/bin/DemoWCF.dll 

everything launched as expected.

This was configured under the Build tab on the project properties in the Output path

Upvotes: 0

AntonK
AntonK

Reputation: 2310

I had the same issue. Simply deleting the bin and obj folders and rebuilding fixed the issue.

Upvotes: 0

user3817747
user3817747

Reputation: 11

I reconfigured my project recently and ran into this error.

It was a setup error, my service DLLs weren't being placed in the right directory when publishing the website.

Upvotes: 1

Shiva Saurabh
Shiva Saurabh

Reputation: 1289

My Problem was resolved when i added the Bin folder and obj folder into the folder path manually. I am able to access it perfectly now.

Upvotes: 0

Rajesh
Rajesh

Reputation: 7876

Please change your service element from:

<service name="weddingservice">

to :

<service name="RestService.weddingservice">

That should resolve your problem

Upvotes: 0

CSharpenter
CSharpenter

Reputation: 762

Set the

<serviceDebug includeExceptionDetailInFaults="false" />

to

<serviceDebug includeExceptionDetailInFaults="true" />

in order to get more details

and try to run the process again

Upvotes: 6

Related Questions