14

我有一个在我的 IIS6 (XP Pro SP2) 中运行的 .NET 2.0 网站 (VB) 和一个托管 ASMX Web 服务的 .NET 3.5(当然,在 IIS 的 ASP.NET 选项卡下配置为 .NET2)。

在 Chrome 中,我可以调用 ASMX 并成功调用 Web 方法。但是,在代码中调用 Web 方法时,我从 .NET 2.0 网站得到:

请求失败,HTTP 状态为 401:未授权。

我该如何解决这个问题?

4

5 回答 5

22

webService初始化对象时,您需要在应用程序中设置凭据。

就像是webService.UseDefaultCredentials = true

这会将请求的凭据设置为执行应用程序的当前用户。

于 2010-07-19T16:14:51.327 回答
4

你可以使用这个:

webservice.UseDefaultCredentials = true;

如果不起作用,请使用下面的代码而不是上面的代码

webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;

注意:用户名密码和域是访问webservice的用户的用户凭证

所以请确保用户有权访问网络服务

也许用户是windows用户

您可以从以下位置获取域:右键单击“MyComputer”和属性域是计算机名称或工作组

于 2016-07-27T13:56:25.940 回答
3
webService.UseDefaultCredentials = true

这对我有用。

于 2013-06-04T21:44:08.763 回答
3

在 IIS 7 中,启用匿名身份验证,您应该能够进行调试。

于 2012-10-01T20:59:36.757 回答
0

我是这样测试的:

CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
    UseDefaultCredentials = true };
于 2014-06-29T04:08:28.750 回答