【问题标题】:What's wrong with this WCF这个 WCF 有什么问题
【发布时间】:2012-05-26 23:38:02
【问题描述】:

我在此链接中创建了 Web 服务库 http://www.codeproject.com/Articles/167159/How-to-create-a-JSON-WCF-RESTful-Service-in-60-sec

为了发布它,我点击了链接http://naztek.wordpress.com/2009/08/27/host-a-wcf-library-in-iis/

但我在运行时收到此错误

“/WCFService1”应用程序中的服务器错误。

“服务”类型,在 ServiceHost 指令中作为服务属性值提供,或在配置元素中提供 system.serviceModel/serviceHostingEnvironment/serviceActivations 可以 找不到。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.InvalidOperationException:“服务”类型,在 ServiceHost 指令中作为服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

我的web.config 是:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
    <services>
      <service name="test1.Try">
        <endpoint address="http://localhost:8732/Try" binding="webHttpBinding" contract="test1.Try"/>
      </service>
    </services>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

[InvalidOperationException:“服务”类型,作为 ServiceHost 指令中的服务属性值提供,或在 配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 可以 找不到。]

【问题讨论】:

    标签: asp.net wcf c#-4.0


    【解决方案1】:

    在我看来,您错过了第二个链接(关于发布)的第 3 步。尤其是这部分:

    将 Service 属性值从 Service 更改为 WCF 库中具体类的完全限定名称,例如 RegistrationServiceLib.RegistrationService

    要打开 svc 文件,请使用右键 -> 打开方式 -> XML(文本)编辑器

    您应该会看到如下内容:

    <%@ ServiceHost Language="C#" Debug="true" Service="YourNamespace.Service" CodeBehind="Service.svc.cs" %>
    

    更改此项以匹配您的服务(就像您的教程所述)。

    【讨论】:

    • 你能为我解释或更正代码吗,我尝试设置所有限定名称
    • 我在回答中扩展了信息。给我看看你的 Service.svc 文件的内部。
    • 非常感谢,但它现在给出错误在服务“Try”实施的合同列表中找不到合同名称“test1.Try”。知道如何解决这个问题
    • 在你的 web.config 中你有 'contract="test1.Try"'。这是您的合约接口命名空间和名称的地方。不是您的服务名称。
    • 是的。契约是你的服务实现的接口。您需要在 web.config 中的服务描述中指定它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2015-09-23
    • 2021-02-27
    • 2012-03-10
    • 2010-11-01
    • 2011-08-26
    • 2020-04-16
    相关资源
    最近更新 更多