2017-02-28 31 views
1

试图在通过http://www.example.com/WS/myExchange.svc打开WCF WebService的我不断收到一个错误:WCF - 具有相同键的项已被添加

System.ArgumentException 具有相同键的项已被添加。

System.ArgumentException:具有相同密钥的项目已添加 。在System.Runtime.AsyncResult.End [TAsyncResult]在 (IAsyncResult的 结果)在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的 结果)在 System.ServiceModel.Activation.ServiceHttpModule.EndProcessRequest(IAsyncResult的 AR) System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult的 AR)

当我打开本地主机上相同的WS,一切正常。

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

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

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

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

高级设置: enter image description here

网站绑定: enter image description here

+0

为什么downwote? Thx解释... – Tadej

+0

对不起,无法从图像读取绑定,你可以发表文字,谢谢? – 2017-02-28 17:37:37

回答

0

问题解决了。

在Web.Config中,部分system.serviceModel我不得不添加:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
2

一个可能的原因是

  1. 你的IIS Web应用程序的高级设置显示 “HTTP,HTTPS” 中的 “启用的协议”。
  2. “默认网站”的“网站绑定”没有https绑定类型。

https://stackoverflow.com/a/19440427/6996876

+0

(我用printscreens更新了问题)不幸的是,您的建议似乎都不是原因:/ – Tadej

0

检查:

  1. Web.Config中的元素也可以是可能重复。
  2. 检查IIS中是否是32位或64位应用程序。
  3. 应用程序池框架。
+0

Web.Config中没有重复项(因为本地和生产主机都使用相同的Web.Configs,本地的)。在IIS中的应用程序严格为64位,在本地是相同的。应用程序池框架是什么意思? – Tadej

相关问题