2015-09-18 4 views
-1

Я пытаюсь запустить следующий код, он отлично работает при запуске на локальном IIS, но возвращает ошибку при размещении на моем веб-сервере IISУдаленный сервер возвратил ошибку: (401) Неавторизованный в System.Net.HttpWebRequest.GetResponse()

Ошибка: - Удаленный сервер возвратил ошибку: (401) Неавторизованный. на System.Net.HttpWebRequest.GetResponse() в _Default.btnsubmit_Click (Object отправителя, EventArgs е) в е: \ Website1 \ Default.aspx.cs:

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); 
} 

Update URL-адрес выше служба WCF сервис и он защищен через учетные данные транспорта в окнах Я пытаюсь ударить по этому URL через мое веб-приложение и передать свои учетные данные в качестве сетевых учетных данных. Когда я запускаю это веб-приложение на своей локальной машине, он работает нормально и возвращает требуемые данные. Но когда я принимаю это приложение, я получил выше заявленную ошибку. Я делаю что-то неправильно.

+0

Что ожидает сервер для входа в систему? –

+0

@ DanielA.White Я обновил свой вопрос, если он еще не читается, дайте мне знать –

+0

возможно, отсутствует «пользователь», «пароль» на сервере? Вы действительно сделали свою учетную запись на сервере? – TechneWare

ответ

0

Вам необходимо посмотреть на свой сервер для имени пользователя, пароля, и если оно является основным или переварить. Я установил свою команду следующим образом:

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 в коде, вы должны сначала его проверить в браузере. Введите свою ссылку в браузере и посмотрите, не вызывает ли она то, что вы хотите.