我有一组托管在 IIS7 中的 WCF 服务。我正在将服务移动到不同的文件夹,以便开始在 URL 中指定版本和环境。例如:
http://myserver/MyServices/ServiceA.svc
变成:
http://myserver/MyServices/QA/1.1.0/ServiceA.svc
我将新文件夹配置为 IIS 中的应用程序,并将其设置为在我们一直使用的同一服务应用程序池下运行。这一切都很好,我可以导航到我的 .svc URL 并查看 WSDL 或在 wcf 测试客户端中打开端点。但是,当尝试使用该服务时,我收到以下错误:
传出消息的身份检查失败。预期的身份是'身份(http://schemas.xmlsoap.org/ws/2005/05/identity/right/possessproperty:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn )' 用于 'http://myserver/MyServices/QA/1.1.0/ServiceA.svc' 目标端点。
当我检查 WSDL 输出时,我注意到标识部分似乎遗漏了应用程序池的标识,它通常包括:
<Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
<Upn>myappuser@mydomain.local</Upn>
</Identity>
在尝试在 IIS 中重新部署和重新配置应用程序后,我能够让身份仅出现在某些服务的元数据中。其他服务还是不包括在内,这比以前更奇怪了。据我所知,IIS 中的原始堆栈和新堆栈之间的配置差异为零。我会遇到哪些类型的问题会导致这些类型的身份问题?