我使用自定义 AppPool 在 IIS 6 上托管了 WCF 服务。此 AppPool 配置为在 IIS_WPG 组中的用户下运行。
我可以从远程位置访问该服务,也可以看到 wsdl,但是当我尝试通过“WCF 测试客户端”访问相同的服务时,出现以下错误
更新:当我通过将 AppPool 的身份更改为“网络服务”组来运行相同的服务时,可以通过测试客户端访问服务。因此,只有当服务以“网络服务”以外的身份运行时(这是用户的默认身份),服务元数据才不可访问
我使用自定义 AppPool 在 IIS 6 上托管了 WCF 服务。此 AppPool 配置为在 IIS_WPG 组中的用户下运行。
我可以从远程位置访问该服务,也可以看到 wsdl,但是当我尝试通过“WCF 测试客户端”访问相同的服务时,出现以下错误
更新:当我通过将 AppPool 的身份更改为“网络服务”组来运行相同的服务时,可以通过测试客户端访问服务。因此,只有当服务以“网络服务”以外的身份运行时(这是用户的默认身份),服务元数据才不可访问
我过去遇到过这个问题,解决方案是在客户端和托管服务的服务器之间使用服务帐户进行身份验证。
我有与上述相同的问题。这是我在寻找解决此问题的方法时所做的事情。
我将开始将 WCF 部署到 IIS6 的过程。
创建虚拟目录后,右键单击它,然后选择属性。以下是每个选项卡的设置
虚拟目录选项卡
文档选项卡
目录安全选项卡
ASP.Net 选项卡
现在,转到计算机管理 > 系统工具 > 本地用户和组 > 组
打开 IIS_WPG 组并添加您的服务帐户。
然后转到开始 > 管理工具 > 本地安全策略
展开安全设置 > 本地策略 > 用户权限分配。搜索作为服务登录,然后在此处添加您的服务帐户。
最后,转到 C:\WINDOWS\Temp 文件夹。右键单击它,然后选择属性。单击安全选项卡,然后添加您的服务帐户。
要设置特殊权限,请单击高级按钮。
选择您的服务帐户,然后单击编辑按钮。在权限列表中,仅勾选或选中“列出文件夹/读取数据”和“删除”权限。单击确定并应用按钮以应用更改。如果消息框提示您,请单击“是”以应用于子文件夹。
现在,最后一刻。确保应用程序池正在运行。在浏览器中测试 WCF,然后在 WCF 测试客户端中测试。
希望对你有帮助...