当我的服务器上的Web应用程序尝试使用命名管道访问该服务器上的自托管WCF服务时,我在2012 R2服务器上收到“访问被拒绝”错误。
我的开发机器(Win 7)上没有这个问题。我可以通过服务器和开发机器上的客户端测试应用程序访问WCF服务。
如果我使用对WCF服务的安装文件夹具有完全控制权限的用户帐户在网站上启用ASP.NET模拟,则错误消失。我不想使用模拟,因为我知道它具有显着的性能损失(更不用说安全问题),并且在会话期间为每个用户输入调用WCF服务。
奇怪的是......如果我将应用程序池设置为具有上述服务文件夹权限的用户或具有管理员权限的用户,那么我仍然会遇到错误,如果ASP.NET Impersonation被禁用。只有在网站上启用ASP.NET模拟后,错误才会消失。
我无法访问WCF服务的来源。
答案 0 :(得分:0)
在这种情况下,Web应用程序位于D:\驱动器上,而匿名身份验证用户(IUSR)没有对Web应用程序位置的RX权限。
请注意,如果您使用的是Windows身份验证,则如果Windows Authenticated用户没有对Web应用程序位置的RX权限,则会出现同样的问题。
一旦我向经过身份验证的用户提供了适当的权限,问题就解决了。
有时解决方案真的很简单......
“里面没有气体” - Slingblade。