我们有一个Windows服务流程,它不断处理来自的消息 Microsoft Messaging Queue。在对这些消息采取行动时,它正在呼叫 来自WCF服务的方法。
该WCF服务托管在ASP.net网站上,该网站不仅具有 WCF服务,但也是最终用户前端。通常,WCF方法是 修改内存中的数据结构,前端正在读取它们。该 数据不断被修改,客户需要收到变更通知 立即。 (我们正在使用SignalR。)
只要ASP.net网站使用Windows,一切都运行良好 集成认证。现在要求前端使用Forms 验证。当然,这打破了WCF绑定。以前的绑定 是:
<basicHttpBinding>
<binding name="BasicHttpBinding_ISessionWebService">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
前端用户无需调用服务。 (事实上,他们 不应该。)
理想情况下,我希望WCF服务继续使用Windows身份验证和 网站的其余部分使用表单身份验证,但我不认为IIS支持 这个。我不想存储和传递帐户密码 运行Windows服务,但如果这是唯一的方法,我可以忍受。一世 我以为可能会有一些使用客户端证书的绑定,但我 我不确定如何设置。
如何以可靠的方式公开WCF端点 从Windows服务调用?