WCF - 已添加具有相同密钥的项目

时间:2017-02-28 06:17:23

标签: c# asp.net-mvc wcf iis binding

尝试通过http://www.example.com/WS/myExchange.svc打开WCF WebService时出现错误:

  

System.ArgumentException   已添加具有相同密钥的项目。

     

System.ArgumentException:具有相同键的项已经存在   添加。在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult)   结果)在   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的   结果)在   System.ServiceModel.Activation.ServiceHttpModule.EndProcessRequest(IAsyncResult的   一只老鼠   System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult的   AR)

当我在localhost上打开相同的WS时,一切正常。

我甚至不知道从哪里开始寻找问题的根源。

IIS配置,安装的模块,项目代码中存在问题吗?

如何找出已添加相同密钥的项目?即使是在Web.Config中?在代码中?在数据库?在包含的模块中?

问题仅出现在“/WS/myExchange.svc”上,网站的其他部分正常工作。

高级设置: enter image description here

网站绑定: enter image description here

3 个答案:

答案 0 :(得分:3)

可能的原因是

  1. 您的IIS网络应用程序的高级设置在“启用的协议”中显示“http,https”。
  2. “默认网站”的“网站绑定”没有https绑定类型。
  3. 请参阅https://stackoverflow.com/a/19440427/6996876

答案 1 :(得分:0)

检查:

  
      
  1. Web.Config元素可能会重复。
  2.   
  3. 检查IIS中是32位还是64位应用程序。
  4.   
  5. 应用程序池框架。
  6.   

答案 2 :(得分:0)

问题解决了。

在Web.Config中,我必须添加:

部分system.serviceModel
   <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>