开始学习WebServer,客户端调用时,提示 "请求因 HTTP 状态 401 失败: Unauthorized。"
查看相关文档,找到两种解决方法
1.右击 - 虚拟目录 - 属性 - 目录安全性 - 编辑 打开对话框后,勾选"启用匿名访问"
2.在WebServer实例化调用前加 "字段名..Credentials = System.Net.CredentialCache.DefaultCredentials;"
例如:
WEB1.Service ws1 = new WebServer_Test.WEB1.Service();
ws1.Credentials = System.Net.CredentialCache.DefaultCredentials;
textBox1.Text = ws1.HelloWorld();
另,以下引用 Mood 朋友的一段话
调用WS的时候,在IIS上有验证设置的,一般设置的是basic验证或者Windows集成验证,这就是说,你要访问这个WS,必须提供一个有权限调用的windows身份,这个时候,如果你的当前调用WS的运行帐号存在于对方系统中,并且密码一样,那么,你的那句ws.Credentials=CredentialCache.DefaultCredentials;就有用,否则,你应该如此写:ws.Credentials = new NetworkCredential(userid,password,domainname),当然如果对方的WS使用了匿名验证,你当前就可以不用写ws.Credentials=....这行代码了。