IIS WPG组中的用户托管的WCF服务?

时间:2012-08-28 10:43:13

标签: wcf wcftestclient

我使用自定义AppPool在IIS 6上托管了WCF服务。此AppPool配置为在IIS_WPG组中的用户下运行。

我可以从远程位置访问该服务,也可以看到wsdl,但是当我尝试通过“WCF Test Client”访问同一服务时,我收到了以下错误

enter image description here

更新:当我通过将AppPool的身份更改为“网络服务”组来运行相同的服务时,可以通过测试客户端访问服务。 因此,只有当服务以“网络服务”以外的身份运行(用户的默认身份)时,才能访问服务元数据

2 个答案:

答案 0 :(得分:1)

我过去遇到过这个问题,解决方案是使用客户端和托管服务的服务器之间的服务帐户进行身份验证。

答案 1 :(得分:0)

我遇到与上述问题相同的问题。以下是我在寻找此问题的解决方案时所做的事情。

我将从WCF到IIS6的部署过程开始。

  1. 在服务器中创建一个文件夹并复制WCF包。
  2. 为您的WCF创建一个AppPool。
  3. 右键单击新创建的AppPool,选择“属性”,然后转到“标识”选项卡。选择"可配置"然后输入您的服务帐户凭据,而不是NETWORK SERVICE。
  4. 我没有创建新的网站。就我而言,我在默认网站下创建了一个虚拟目录,并将其指向我已复制的WCF文件夹。
  5. 创建虚拟目录后,右键单击它,然后选择“属性”。以下是每个标签的设置

    虚拟目录标签

    • 单击“创建”按钮以创建应用程序名称。
    • 选择"仅脚本"执行权限。
    • 选择您已创建的AppPool。
    • 单击“应用”按钮以保存更改。

    文档标签

    • 添加新内容 - 您的WCF .svc文件的名称。
    • 单击“应用”按钮以保存更改。

    目录安全性标签

    • 单击“身份验证和访问控制”中的“编辑”按钮。
    • 使用您的服务帐户凭据更改用户名和密码。
    • 单击“确定”(如果需要重新确认,请再次输入密码)。
    • 单击“应用”按钮以保存更改。

    ASP.Net标签

    • 选择4.0.30319版本(如果需要.net framework 4.0)
    • 单击“应用”按钮以保存更改。
  6. 现在,转到计算机管理>系统工具>本地用户和群组>组

  7. 打开IIS_WPG组并添加您的服务帐户。

  8. 然后转到开始>管理工具>本地安全政策

  9. 展开安全设置>地方政策>用户权利分配。搜索以服务身份登录,然后在此处添加您的服务帐户。

  10. 最后,转到C:\ WINDOWS \ Temp文件夹。右键单击它,然后选择“属性”。单击安全选项卡,然后添加您的服务帐户

  11. 要设置特殊权限,请单击“高级”按钮。

  12. 选择您的服务帐户,然后点击修改按钮。在权限列表中,勾选或仅选中"列出文件夹/读取数据"和"删除"权限。单击确定和应用按钮以应用更改。如果系统提示您,请单击“是”以应用子文件夹。

  13. 现在,最后一刻。确保应用程序池正在运行。在浏览器中测试WCF,然后在WCF测试客户端中测试。

    1. 在我的情况下,它完美地工作:)
  14. 希望这会对你有帮助......