VS2010,WCF服务';开始
我将一步一步地介绍到目前为止我所做的工作,如下所示:VS2010,WCF服务';开始,wcf,visual-studio-2010,Wcf,Visual Studio 2010,我将一步一步地介绍到目前为止我所做的工作,如下所示: 创建空的解决方案 添加了一个网站WCFService 已从网站中删除服务和iSeries设备 向解决方案中添加了WCF服务库项目 将端点添加到web.config 在app.config中执行了相同的操作 在web应用程序中添加了对服务库的引用 ctrl+F5 九, 我得到以下错误: “/WFLedger”中的服务器错误 应用类型 “Services.WFLedger.WF_Ledger”, 作为服务属性提供 ServiceHost指令中的值
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串 构造函数字符串,Uri[] 基本地址)+654
System.ServiceModel.HostingManager.CreateService(字符串 标准化虚拟路径)+1439
System.ServiceModel.HostingManager.ActivateService(字符串 标准化虚拟路径)+45
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 标准化虚拟路径)+647 [ServiceActivationException: 服务'/WFLedger/WF_Ledger.svc' 由于出现错误,无法激活 编译过程中出现异常 异常消息是:类型为 “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 上下文,字符串 routeServiceVirtualPath,布尔型 flowContext,布尔值(RewfService) +230 System.ServiceModel.Activation.HttpModule.ProcessRequest(对象 发送者,事件参数e)+360
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +213 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤、布尔值和同步完成) +76 这真的快把我逼疯了!!! 为什么我会犯这个错误? 如果您需要更多信息,请让我知道,以便我提供给您
提前感谢一百万查看网站项目中的WF_Ledger.svc文件。它应该只包含一行。服务属性将包含“Services.WFAPILedger.WF\u API\u Ledger”。WCF正在查找“Services.WFAPILedger.WF_API_Ledger”类,但未找到它。名称空间和类名需要存在于网站项目中,或者在尝试设置时作为引用。您需要编辑该服务属性以匹配WCF服务库项目中的服务实现类。请检查是否提供了.svc文件,并且该文件的格式如下
<% @ServiceHost Language=C# Debug="true" Service="MyService" CodeBehind="~/App_Code/Service.cs" %>
它全部是一行,文件应该不包含任何其他内容。尝试添加新的默认服务,然后检查新添加的工作正常。 如果是,请检查提供的web.config端点契约名称,
和.svc文件中正确提到的检查代码。in.svc文件服务参数应包括命名空间,后跟类名,即它的格式应为mynamespace.myservice甚至确保在.svc文件指令中,“Service”属性的值是完全限定的类名,例如:如果您的命名空间类似于“ns1.ns2.ns3.ClassName”(其中ns1、ns2、ns3是命名空间)。构建WCF项目并重试。发生此错误的原因可能是bin文件夹中缺少DLL
对于我来说,构建并重试解决了此问题。可以通过重命名*.svc.cs文件中的类名而不在*.svc标记中重命名来生成此错误 解决此问题的两种方法:
- 将类名重命名为原始名称
- 重命名标记中的服务引用(右键单击*.svc文件,然后单击“查看标记”*)
<%@ ServiceHost Language="C#" Debug="true" Service="WCFSample.MyClass"CodeBehind="MyClass.svc.cs" %>
*注意:我在VS2017中遇到了这个问题,不知道该选项是否在VS2010中。在调用函数的Iservice类中检查函数名和参数,并在定义函数的地方检查服务类。非常感谢,问题是我在.svc文件中的类名是错误的,愚蠢的问题,但烦人的该死,我在类名中用了“e”而不是“a”。血虫