我将逐步完成目前所做的工作,如下所示:
我收到以下错误:
异常详细信息:
System.InvalidOperationException:The 类型 'Services.WFLedger.WF_API_Ledger', 作为服务属性提供 ServiceHost指令中的值,或 在配置元素中提供 system.serviceModel / serviceHostingEnvironment / serviceActivations 无法找到。
来源错误:
生成了未处理的异常 在执行当前 网络请求。有关的信息 异常的起源和位置 可以使用例外来识别 堆栈跟踪下面。
堆栈追踪:
这真的让我发疯! 为什么我会收到此错误? 如果您需要更多信息,请告诉我,以便我提供给您 提前感谢一百万[InvalidOperationException:类型 'Services.WFLedger.WF_Ledger', 作为服务属性提供 ServiceHost指令中的值,或 在配置元素中提供 system.serviceModel / serviceHostingEnvironment / serviceActivations 无法找到。]
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串 constructorString,Uri [] baseAddresses)+654
System.ServiceModel.HostingManager.CreateService(字符串 normalizedVirtualPath)+1439
System.ServiceModel.HostingManager.ActivateService(字符串 normalizedVirtualPath)+45
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath)+647[ServiceActivationException:The 服务'/WFLedger/WF_Ledger.svc' 由于a无法激活 编译期间的异常。该 异常消息是:类型 'Services.WFAPILedger.WF_API_Ledger', 作为服务属性提供 ServiceHost指令中的值,或 在配置元素中提供 system.serviceModel / serviceHostingEnvironment / serviceActivations 无法找到..]
System.Runtime.AsyncResult.End(IAsyncResult的 结果)+437
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的 结果)+188
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication的 context,String routeServiceVirtualPath,Boolean flowContext,Boolean ensureWFService) +230 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object 发件人,EventArgs e)+360
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +213 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔& completedSynchronously) 76
答案 0 :(得分:37)
查看网站项目中的WF_Ledger.svc文件。它应该只包含一行。将存在包含“Services.WFAPILedger.WF_API_Ledger”的Service属性。 WCF正在寻找“Services.WFAPILedger.WF_API_Ledger”类,但没有找到它。名称空间和类名称需要存在于网站项目中,或者在您尝试设置时作为参考。您需要编辑该Service属性以匹配WCF服务库项目中的服务实现类。
答案 1 :(得分:5)
请检查.svc文件是否已提供,且格式如下。
<% @ServiceHost Language=C# Debug="true" Service="MyService" CodeBehind="~/App_Code/Service.cs" %>
它的所有一行和文件应该不包含任何其他内容。
答案 2 :(得分:2)
尝试添加新的默认服务,然后检查新添加的工作正常。 如果是,请检查提供的web.config端点合同名称, 并在.svc文件中检查后面正确提到的代码。
答案 3 :(得分:1)
在.svc文件中服务参数应该包含名称空间,后跟类名,即它的格式应为mynamespace.myservice
答案 4 :(得分:1)
构建WCF项目并重试。由于bin文件夹中没有DLL,可能会发生此错误。
对我来说,建立并再次尝试解决它。
答案 5 :(得分:0)
甚至确保在.svc文件指令中,“service”属性的值是完全限定的类名,例如:如果您的命名空间类似于“ns1.ns2.ns3.ClassName”(其中ns1,ns2, ns3是名称空间)。
答案 6 :(得分:0)
可以通过在* .svc.cs文件中重命名类名而不在* .svc标记中重命名来生成此错误。
解决此问题的两种方法:
您的标记代码如下所示:
<%@ ServiceHost Language="C#" Debug="true" Service="WCFSample.MyClass"CodeBehind="MyClass.svc.cs" %>
*注意:我在VS2017中遇到此问题,不知道该选项是否在VS2010中。
答案 7 :(得分:0)
检查调用函数的Iservice类中的函数名和参数,并检查函数定义的服务类。