I have searched online for a solution, but have yet to find one that works.
I have a Silverlight application that uses a WCF web service.
Everything runs fine on my development environment.
When I publish to my DiscountASP.NET account – the web service gives me the following exception:
“Server Error in ‘/eLearning/Services’ Application.
The type ‘eLearning.Web.Services.Learning, eLearning.Web’, provided as the Service attribute value in the ServiceHost directive could not be found. “
Please refer to the actual exception at:
http://www.christophernotley.com/eLearning/Services/Learning.svc
I have made “eLearning” a web application – and moved the web.config to the root directory.
I have also confirmed that in the markup for the web service, that the service property states “eLearning.Web.Services.Learning, eLearning.Web”.
Any ideas as to what I am doing wrong?
Thanks.
Chris
Here is the markup for the web service:
<%@ ServiceHost Language="C#" Debug="true" Factory="System.Data.Services.DataServiceHostFactory, System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Service="eLearning.Web.Services.Learning, eLearning.Web" CodeBehind="Learning.svc.cs" %>
Here is the System.ServiceModel web config:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="RestBehaviorConfig">
<webHttp/>
</behavior>
<behavior name="webBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DebugEnabled">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="customBinding0">
<binaryMessageEncoding/>
<httpTransport/>
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://www.christophernotley.com/"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<services>
<service behaviorConfiguration="DebugEnabled" name="eLearning.Web.Services.Learning">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
Well, in a WCF scenario, your service URL is determined by three things:
In your case, the URL is
So this begs the question:
/eLearningreally defined as a virtual directory?/Servicessubdirectory below your virtual directory?App_Codedirectory? Where is this directory??UPDATE:
I’m a bit confused about your setup….. you say
/eLearning/Servicesis an application – a virtual application defined in IIS, right?In your
Learning.svcfile, you define a code-behind file ofLearning.svc.cs– so does your service code exist there? (because in another statement, you mention a .\bin directory under /eLearning – is your service compiled into an assembly that’s deployed to that bin directory??)