WCF服务调用仅在Fiddler运行时有效

时间:2016-11-23 21:50:03

标签: asp.net .net wcf iis fiddler

我已经看到了很多关于这个问题的问题和答案,但没有一个似乎能解决或完全符合我的情况。

我有一个在我自己的IIS上本地运行的网站用于开发目的。该网站调用由政府实体提供的Web服务来执行任务。该网站由我用于开发/调整等,并由测试部门进行初步测试。

最近政府要求我们在使用此服务时支持TLS1.2。他们为我们提供了新的SHA-2证书。没问题。在独立应用程序中使用相同的服务,并使用TLS1.2协议正常工作。但是,现在我发现当我通过我们的内部网站进行服务调用时,它会因臭名昭着的“没有端点发现...”错误而失败。但是,当我有Fiddler运行时它工作正常。

我的小提琴设置是:

  • '忽略服务器证书错误'未选中(已检查也失败)
  • 'Protocols''; TLS1.2'(允许更广泛的范围也失败)
  • '启动时充当系统代理'未选中(已检查也失败)
  • 'Fiddler在端口'8888
  • 上收听
  • '无代理'已选中。 ('使用系统 代理'也失败了)

注意:“失败”是指服务呼叫仍然有效。如果我得到一个有用的错误,我将获得成功。

新证书已正确安装。请记住,服务调用在IIS之外工作正常。

我目前认为存在某种安全问题,因为我没有使用签名证书进行测试网站,即使在更改SHA-2之前这不是问题。它与Fiddler合作的原因是Fiddler使用自己的证书。可能是吗?

那么,对于这个问题,为什么这个服务调用只能在Fiddler运行时在独立应用程序中工作并在我的本地开发网站上工作?

2 个答案:

答案 0 :(得分:1)

我遇到过类似的问题,我的应用程序无法访问网络服务但是当Fiddler运行时,一切正常。

我的案例的解决方案是运行应用程序的用户没有足够的权限。 Fiddler正在我的用户上运行,因此它可以调用该服务。 我已经为具有足够权限的用户更改了应用程序的用户,并且一切都已开始正常工作。

答案 1 :(得分:1)

可能有很多原因,正如Telerik自己http://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app-

所描述的那样
  
      
  • HTTPWebRequest - >通常不会在GetResponseStream()
  • 上调用Close()   
  • Keep-Alive问题 - >由于您的应用与fiddler有本地连接,因此这些时间可以减少您遇到的任何问题
  •   
  • 缓冲区大小 - >网络效率低下,由于本地连接而消失
  •   
  • 慢代理确定
  •   
  • HTTPS问题 - >更正或更换服务器的证书。
  •   
  • 协议版本控制 - >要么在客户端禁用TLS / 1.1 +,要么更好,唠叨服务器运营商升级他们的软件以支持TLS标准。
  •