HTTP 权限问题,

jiangseraph 2009-12-17 02:29:22
一个已经正确运行的程序,我把源码拷贝到了本机,调试运行的时候提示:

An exception of type 'System.Net.WebException' occurred in System.Web.Services.dll but was not handled in user code

Additional information: The request failed with HTTP status 401: Unauthorized.

应该怎么配置呢? 能否讲的详细些,谢谢
...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangseraph 2009-12-19
  • 打赏
  • 举报
回复
问题找到了,
这个程序是使用HttpRequest去访问本机的服务端程序,程序代码是不需要修改的。
把服务端程序目录的访问属性全部加上,问题就解决了

谢谢楼上各位的支持, 你们的建议对一个初学者是非常有帮助的
结贴啦
jshi123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiangseraph 的回复:]
改成 authentication mode="None" 了还是不行

提示的错误同上.
[/Quote]

web.config文件里是不是还有<authorization>配置节?如果有把这个部分都删掉。
还有WebMethod上有没有加什么特殊的属性标签?比如soap安全头之类的?
龙翔飞雪 2009-12-18
  • 打赏
  • 举报
回复
需要Credentials

lz应该是用WebClient或HttpRequest之类的API去访问网络资源, 被访问的网络资源是需要身份验证的...
默认情况下, 是带Windows本身的Identity (即登录Windows的账户或domain账户)作为Credentials. (即Windows Authentication)

如果被访问的网络资源不在同一个domain, 或使用其他认证方式, 比如Forms Authentication, 那么默认的Windows Identity是无法通过认证的.

这时就需要对WebClient (或使用到的API类)添加Credentials, 例如以下代码:


System.Net.WebClient client = new System.Net.WebClient();
client.Credentials = new System.Net.NetworkCredential(user, pass, domain);
System.IO.Stream stream = client.OpenRead("http://xxx.xxx.com/Reports");
//下面继续读取后的操作.
//.........
jiangseraph 2009-12-18
  • 打赏
  • 举报
回复
改成 authentication mode="None" 了还是不行

提示的错误同上.
jshi123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jiangseraph 的回复:]
感谢 jshi123,

WebService在本机

web.config中authentication mode="Windows"


[/Quote]

那就对了,你的WebService需要身份验证。

你可以在web.config中把authentication mode改成"None" ,或者在调用的时候提供用户名/密码,比如:
Test.WebReference.Service1 wr = new Test.WebReference.Service1();
wr.Credentials = new NetworkCredential("guest","123")
http://www.cnblogs.com/Andy_Qin/archive/2009/08/04/1538844.html
ximengtiankong 2009-12-18
  • 打赏
  • 举报
回复
jiangseraph 2009-12-18
  • 打赏
  • 举报
回复
感谢 jshi123,

WebService在本机

web.config中authentication mode="Windows"

jshi123 2009-12-17
  • 打赏
  • 举报
回复
你调用的WebService是在你本机上的,还是在其它机器上?
WebService是否配置成了需要身份验证?(web.config中authentication mode="Forms"或"Windows")
jiangseraph 2009-12-17
  • 打赏
  • 举报
回复
谢谢 Lovely_baby,

允许匿名访问 我已经勾选了, 可是还是不行呀?
Lovely_baby 2009-12-17
  • 打赏
  • 举报
回复
或者你试试
运行IIS管理器,把你的WebService所在的虚拟目录的"安全"->"允许匿名访问" 选上即可。
Lovely_baby 2009-12-17
  • 打赏
  • 举报
回复
在代码里用WebProxy为WebServices对象加了个proxy

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧