我创建了一个WCF服务,并使用.NET 4.5中的新标识管道对其进行了保护,授权由ADFS 2.0服务器颁发的令牌提供。该服务位于具有自签名证书的SSL端点后面。
我附加了Fiddler,试图解决使用该服务的初始异常。这需要启用Fiddler的HTTPS解密,并在手机模拟器上安装FiddlerRoot证书。我发现了问题,并适当地更新了代码。下次我尝试使用该服务时,代码成功了。我分离了Fiddler,这就是混乱的开始。我继续收到同样的(误导性的)异常:
The remote server returned an error: NotFound.
考虑到这可能是X509链验证问题,我在手机上安装了自签名证书,就像使用FiddlerRoot证书一样。我的结果没有变化。以下事情是真的,对我来说没有任何意义:
- 可以通过模拟器的web浏览器在端点地址访问服务描述页
- IIS日志不包含引发异常时向服务发出的请求
- 作为推论,WCF跟踪日志也不包含任何有关失败调用的信息
此行为对应于将应用程序部署到物理设备时的行为。我认为Fiddler可能正在创建一个代理,该代理有一个模拟器不可用的网络路径,但乍一看,这似乎不正确。
对问题来源的调试指导或推测将不胜感激。
我认为您对验证链的怀疑是正确的。但是,在手机上安装证书可能还不够,您还必须检查它是否属于正确的域。自签名证书的一个常见错误是为localhost生成证书,然后从另一台机器(从而从另一个域名)访问证书。