asp.net - WCF - 发现该契约(Contract)的多个端点配置 - 错误

标签 asp.net wcf iis-7.5

我们有使用 WCF 的 ASP.Net Web 应用程序。 wcf 服务作为 Windows 服务托管。一切都很好。然后我们进行了更改,以便服务协定具有不同的命名空间(从 Namespace1.IserviceContract 到 Namespace2.IserviceContract)。更改后,我们部署到服务器并在尝试实例化服务对象时出现以下错误。

    System.InvalidOperationException: An endpoint configuration section for contract 'Namespace2.IserviceContract' could not be loaded because more than one endpoint configuration for that contract was found. Please indicate the preferred endpoint configuration section by name.

Generated: Fri, 06 Jul 2012 21:02:56 GMT


System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.InvalidOperationException: An endpoint configuration section for contract 'Namespace2.IserviceContract' could not be loaded because more than one endpoint configuration for that contract was found. Please indicate the preferred endpoint configuration section by name.
   at System.ServiceModel.Description.ConfigLoader.LookupChannel(String configurationName, String contractName, Boolean wildcard)
   at System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
   at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
   at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
   at System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
   at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
   at System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
   at System.ServiceModel.EndpointTrait`1.CreateChannelFactory()
   at System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
   at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
   at System.ServiceModel.ClientBase`1..ctor()
   at TestApplication.ManagementWrapper.VerifyAuthentication(Int32 appId, String Token)
   at TestApplication.VerifyAuthentication(String tokenstring)

我们对此问题进行了研究,发现如果我们在 web.config 文件中定义了两个客户端端点,则会出现这种类型的异常。但是我们确信我们只定义了一个客户端端点。更多关于此异常仅显示在服务器中。本地工作正常。这是我们的服务模式:
<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding_Management" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="4194304" maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="32768" maxNameTableCharCount="2147483647" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint address="net.tcp://servername:9010/Management/service/ManagementService" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_Management" contract="Namespace2.IserviceContract" name="NetTcpBinding_IserviceContract" />
    </client>
  </system.serviceModel>

我们还尝试重新启动 IIS 和应用程序池。仍然得到同样的异常(exception)。

最佳答案

尝试在您的 web.config 中搜索另一个使用该网址作为您的 ManagementService 的配置。此外,在 web.config 中搜索对旧命名空间 (contract="Namespace1.IserviceContract") 的任何引用。不要忘记检查额外的 .config 文件。那个小问题之前已经把我烧死了。

关于asp.net - WCF - 发现该契约(Contract)的多个端点配置 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370338/

相关文章:

javascript - 带有大量嵌入式 JavaScript 和其他静态文件的 ASP.NET 自定义服务器控件

wcf - 如何实现跨机器的发布/订阅通信

json - 错误 404.3 未找到 JSON 文件

httphandler - AjaxToolkit IIS7 Asp.Net 4.0 : Sys is not defined; handler mapping issue?

asp.net - IIS 7.5、ASP.NET MVC。 HTTP 错误 500(内部服务器错误): An unexpected condition was encountered while the server was attempting to fulfil

jQuery 数据表仅显示一行,但 JSON 包含所有记录

asp.net - 在静态 Web 方法(ASPNet Web 窗体)中调用 ResolveClientUrl

c# - 提供者与 Oracle 客户端版本不兼容

.net - 命名参数和可选参数,以及 WCF

wcf - 如何强制 IIS 托管的 WCF 或 ASMX [webservice] 以只读方式使用 session 对象?