Web Services “HTTP状态401:拒绝访问”错误,即使虚拟目录允许匿名访问

t1rydlwq  于 2022-11-15  发布在  其他
关注(0)|答案(6)|浏览(163)

我在另一台服务器上托管了Web服务,并且IIS中的匿名访问复选框已选中。当我的本地Web应用程序尝试访问Web服务时,仍然收到“请求失败,HTTP状态为401:拒绝访问。”错误。我的Web应用程序正在调用Web服务,如下所示:
ws =新建的我的对象.网络服务(); ws.检索(someParams);
我错过了什么?

ogsagwnx

ogsagwnx1#

Here是诊断401错误的好参考。
从这里开始,一个地方是查看您为匿名用户配置的凭据。如果它们不正确(如果用户密码可能在其他地方被更改),您将得到一个HTTP 401。

yshpjwxd

yshpjwxd2#

确保你的目录权限也设置为允许每个人读访问。很多时候做本地开发工作,我会忘记正在访问的目录有一个单独的权限集,需要修改。
干杯!干杯!

vxqlmq5t

vxqlmq5t3#

检查此http://www.c-sharpcorner.com/UploadFile/mahesh/40107282006095201AM/401.aspx
//Assigning DefaultCredentials to the Credentials property //of the Web service client proxy (myProxy). myProxy.Credentials= System.Net.CredentialCache.DefaultCredentials;
这个代码对我有用。

w8ntj3qf

w8ntj3qf4#

你有没有试过取消选择允许iis控制密码的一些时间,得到了sink。
尝试该网站和它可能工作.你应该能够重新启用控制后

u7up0aaq

u7up0aaq5#

请尝试以下操作(注意预身份验证):

MyObject.WebService ws = new MyObject.WebService(); 
ws.PreAuthenticate = true;
response = ws.Retrieve(someParams);

要了解更详细的解释为什么这可能工作,您可以参考以下答案http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/3ae9753d-2d97-45b9-9ba2-6d551fe60a48/

jrcvhitl

jrcvhitl6#

我认为可能发生的情况是,您得到了一个401 -权限被拒绝,但不清楚该权限被拒绝给谁。我猜此时您已经检查了计算机上的NTFS权限,并确认您确实具有访问权限。
接下来,我将查看应用程序池使用的帐户。如果是默认设置,则可能是NT网络服务帐户。如果是这种情况,请确认该帐户确实具有访问应用程序目录的权限。如果确实如此,则可能是COM+安全设置。默认情况下,您的网络服务帐户没有远程启动组件的权限。如果是这种情况,您将在系统和安全日志中看到错误,并显示链接“无法启动组件“
查看IIS日志文件以及iis服务器上的系统和安全事件日志通常会得到更多线索。
希望它能帮上忙。

相关问题