我已经使用自定义AppPool在IIS 6上托管了WCF服务。此AppPool配置为在IIS_WPG组中的用户下运行。在IIS WPG组中使用用户托管的WCF服务?
我可以从远程位置访问该服务,可以看到WSDL为好,但是当我试图通过“WCF测试客户端”访问相同的服务,我得到了以下错误
更新:当我通过将AppPool的身份更改为“网络服务”组来运行相同的服务时,可以通过测试客户端访问服务。 因此,服务元数据只有在服务以“网络服务”(这是用户的默认身份)之外的身份运行时才可访问
我已经使用自定义AppPool在IIS 6上托管了WCF服务。此AppPool配置为在IIS_WPG组中的用户下运行。在IIS WPG组中使用用户托管的WCF服务?
我可以从远程位置访问该服务,可以看到WSDL为好,但是当我试图通过“WCF测试客户端”访问相同的服务,我得到了以下错误
更新:当我通过将AppPool的身份更改为“网络服务”组来运行相同的服务时,可以通过测试客户端访问服务。 因此,服务元数据只有在服务以“网络服务”(这是用户的默认身份)之外的身份运行时才可访问
我在过去遇到过这个问题,解决方案是使用服务进行身份验证客户端和托管该服务的服务器之间的帐户。
我有同样的问题,如上所述..这是我找到解决这个问题时所做的事情。
我将开始将WCF的部署过程传递给IIS6。
创建虚拟目录后,右键单击它,然后选择属性。下面是每个选项卡
虚拟目录选项卡
单据选项卡
目录安全性选项卡
ASP.Net标签
现在,转到计算机管理>系统工具>本地用户和组>组
打开IIS_WPG组,并添加您的服务帐户。
然后去开始>管理工具 - >本地安全策略
展开安全设置>本地策略>用户权利指派。搜索作为服务登录,然后在那里添加您的服务帐户。
最后,转到C:\ WINDOWS \ Temp文件夹。右键点击它然后选择属性。点击安全标签,然后添加您的服务帐户。
要设置特殊权限,请单击高级按钮。
选择您的服务帐户,然后点击编辑按钮。在权限列表中,勾选或选中“列出文件夹/读取数据”和“删除”权限。点击确定并应用按钮以应用更改。如果消息框提示您,请单击是以应用于子文件夹中。
现在,最后一刻。确保应用程序池正在运行。在浏览器中测试WCF,然后在WCF Test客户端中测试。
希望这将帮助你...
检查这个问题的答案:HTTP ://stackoverflow.com/questions/5199541/failed-to-add-a-service-service-metadata-may-not-be-accessible-make-sure-your看来你的服务缺少它的元数据(mex)端点。 –
珊瑚,mex端点从未在服务配置中定义。问题稍有不同,只有服务在自定义用户身份下运行时才会发生,而不是“网络服务”。 – Nexus23
自定义用户标识对服务运行所需的所有文件拥有权限?包括来自wwwroot和证书的文件(如果你已经增加了安全性)? –