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指令中的值

我将一步一步地介绍到目前为止我所做的工作,如下所示:

  • 创建空的解决方案
  • 添加了一个网站WCFService
  • 已从网站中删除服务和iSeries设备
  • 向解决方案中添加了WCF服务库项目
  • 将端点添加到web.config
  • 在app.config中执行了相同的操作
  • 在web应用程序中添加了对服务库的引用
  • ctrl+F5 九,
  • 我得到以下错误:

    “/WFLedger”中的服务器错误 应用类型 “Services.WFLedger.WF_Ledger”, 作为服务属性提供 ServiceHost指令中的值,或 在配置元素中提供 system.serviceModel/serviceHostingEnvironment/serviceActivations 找不到。描述:安 期间发生未处理的异常 当前web的执行 要求请查看堆栈跟踪 有关错误的详细信息,请参见 以及它在代码中的起源

    例外情况详情:

    System.InvalidOperationException:异常 类型 “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(字符串 构造函数字符串,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”。血虫