我已经看到了很多关于这个问题的问题和答案,但没有一个似乎能解决或完全符合我的情况。
我有一个在我自己的IIS上本地运行的网站用于开发目的。该网站调用由政府实体提供的Web服务来执行任务。该网站由我用于开发/调整等,并由测试部门进行初步测试。
最近政府要求我们在使用此服务时支持TLS1.2。他们为我们提供了新的SHA-2证书。没问题。在独立应用程序中使用相同的服务,并使用TLS1.2协议正常工作。但是,现在我发现当我通过我们的内部网站进行服务调用时,它会因臭名昭着的“没有端点发现...”错误而失败。但是,当我有Fiddler运行时它工作正常。
我的小提琴设置是:
注意:“失败”是指服务呼叫仍然有效。如果我得到一个有用的错误,我将获得成功。
新证书已正确安装。请记住,服务调用在IIS之外工作正常。
我目前认为存在某种安全问题,因为我没有使用签名证书进行测试网站,即使在更改SHA-2之前这不是问题。它与Fiddler合作的原因是Fiddler使用自己的证书。可能是吗?
那么,对于这个问题,为什么这个服务调用只能在Fiddler运行时在独立应用程序中工作并在我的本地开发网站上工作?
答案 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标准。