iis 远程服务器返回错误:(401)您访问的页面不存在,

tv6aics1  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(89)

我正在尝试运行以下代码,当在localhost IIS上运行时,它工作正常,但当在我的Web服务器IIS上托管时,它返回错误

错误:--远程服务器返回一个错误:(401)您访问的页面不存在。请检查您访问的页面是否存在。

try
{

var webAddr = "http://serviceserver/someService";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "text/xml";
httpWebRequest.ContentLength = 0;
httpWebRequest.Method = "GET";

httpWebRequest.Credentials = new NetworkCredential("user", "password");
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new treamReader(httpResponse.GetResponseStream()))
   {
       var result = streamReader.ReadToEnd();
       Label1.Text = result;
   }
}
catch (Exception ex)
{
Response.Write(ex.Message);
Response.Write(ex.StackTrace);
Response.Write(ex.InnerException);
}

更新以上服务URL是WCF服务,它通过Windows中得传输凭据受到保护我尝试通过Web应用程序单击此URL,并将凭据作为网络凭据传递.当我在本地计算机上运行此Web应用程序时,它运行正常并返回所需得数据.但当我承载此应用程序时,出现上述错误.我是否做错了什么.

5cnsuln7

5cnsuln71#

你需要在你的服务器上寻找一个用户名,密码,以及它是基本的还是摘要的。我把我的命令设置成这样:

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(uri);
 var cache = new CredentialCache();
 cache.Add(new Uri(uri), "Digest", new NetworkCredential("administrator", "admin"));
 httpRequest.Credentials = cache;
 httpRequest.PreAuthenticate = true;
 using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
 {
    //DO CODE

 }

在代码中实现httpRequest之前,你应该先在浏览器中检查它。在浏览器中输入你的链接,看看它是否显示了你想要的内容。

相关问题