tags:

views:

21115

answers:

10

I'm trying to host my service with IIS 6 but I keep get this exception.

    Server Error in '/WebServices' Application.
--------------------------------------------------------------------------------

The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive 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 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive 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 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found.]
   System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +6714599
   System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +604
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +46
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +654

[ServiceActivationException: The service '/WebServices/dm/RecipientService.svc' cannot be activated due to an exception during compilation.  The exception message is: The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found..]
   System.ServiceModel.AsyncResult.End(IAsyncResult result) +15626880
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15546921
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
   System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +227
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082

I have absolutely no clue except that it seems like it can't find my assemblies. The code should be correctly compiled with public classes.

Here is my .svc file:

<%@ ServiceHost Language="C#" Debug="true" Service="QS.DialogManager.Communication.IISHost.RecipientService" CodeBehind="RecipientService.svc.cs" %>

I have tried to create a very very simple service that contains just nothin too see if this would work but still the same old error shows up.

The type 'IISHost.Service1', provided as the Service attribute value in the ServiceHost directive could not be found.
+11  A: 

Option One:

This message is often due to an IIS 7 config problem. If you are used to creating a virtual directory pointing to the folder where your service resides, that no longer works. Now, you need to use the "Create Application..." option instead.

Other Options:

Koistya Navin
Where can I find this option on IIS 6?
nandarya
Verify that virtual folder in IIS6 is a web application
Koistya Navin
Tried it and got some more information: "Could not load file or assembly 'SomeOtherAssembly' or one of its dependencies. The system cannot find the file specified."
nandarya
Have you copy it to the bin directory under the vroot?
Koistya Navin
Yes, I have a copy right under the virtual root. Also tried to copy it to WINDOWS/Microsoft.NET/FRAMEWORK64/... folder but still no result.
nandarya
"under the virtual root" or into /bin folder under the virtual root?
Koistya Navin
Yes, I've tried that too but with no result. Trying to find out if all other assemblies is correctly installed. Thanks for all your help. It's very appreciated!
nandarya
Yes, now it works! I missunderstood you before and solved the problem making the subfolder to a virtual app. Thanks a lot!
nandarya
@nandarya, you're welcome! :-)
Koistya Navin
+1 for the JoyOfCode ref - pointed us in the right direction to work out what was going on :)
Zhaph - Ben Duguid
+3  A: 

The problem could also be a in a different namespace in svc file as it is in svc.cs file.

In svc file namespace must be in the following format.

Service="Namespace.SvcClassName"
Peter Stegnar
+1  A: 

Two keys to this for certain flavors of the ' Service attribute value in the ServiceHost directive could not be found'-problem: (1) If you're working in Silverlight, you should use the Silverlight WCF-Enabled Service, not the non-Silverlight WCF Service; this will update Web.Config for the bindings and allow the type to be visible; (2) Match the class name in the new service to the Service name -- the goal here is to make a wsdl... so that you know the service's functionality is exposed to your Silverlight client and to the Web; it helps to have the service match the class. If you get the names gummed up, you will have to edit the Web.Config in 3 places (serviceBehaviors, services and bindings).

There were so many sincere attempts to help folks with this problem that were not helpful to me that it should be stressed that this write-up is for a Silverlight solution and it may not apply for someone not using Silverlight 3 in a client/Web configuration.

Hope it helps.

kgoldfisher
A: 

I know this is probably the "obvious" answer, but it tripped me up for a bit. Make sure there's a dll for the project in the bin folder. When the service was published, the guy who published it deleted the dlls because he thought they were in the GAC. The one specifically for the project (QS.DialogManager.Communication.IISHost.RecipientService.dll, in this case) wasn't there.

Same error for a VERY different reason.

baileyrt
A: 

You should configure your bin folder path to service local bin.

Kishor
A: 

I had the same problem but no clue what caused it. I Solved it by changing from Debug to Release and Run using Debug/Start New Instance. After that, it ran in both Release and Debug. It was magic...

Clayton
A: 

I had this problem - my service type was in the GAC. It WOULD work if i added the dll containing the type to the bin folder but as it was in the GAC this was NOT what I wanted. I eventually added this to the web.config for the service

< system.web > < customErrors mode="RemoteOnly"/> < compilation debug="true" targetFramework="4.0"> < assemblies> < add assembly="[name in GAC], Version=[version in GAC], Culture=neutral, PublicKeyToken=[ac token]" /> < /assemblies> < /compilation> < /system.web>

and it worked without needing any dlls in the bin folder.

Jason9364
A: 

Add reference of service in your service or copy dll.

JDP
A: 

I practically solved the same issue . Here is my suggestion -- The error means that the object referenced in the Service attribute is not found. For the object to be found, the application or library must build output to the bin folder.

You can edit property page of the application and specify the output path to 'bin'.

Dayakumar
A: 

I also ran into this issue trying the Microsoft.ServiceModel.Samples.Calculator WCF sample. I am using IIS 5.1. I resolved it by ensuring that the website that was auto-generated (servicemodelsamples) was not an application. Right-click the folder, click "Properties" and click the "Create" button.

amgray789