Сбой WebRequest.GetResponseStream () в проекте ASP.NET MVC 3 - PullRequest
1 голос
/ 31 января 2012

Я пытаюсь выполнить программный HTTP POST в приложении ASP.NET MVC 3.Цель состоит в том, чтобы имитировать отправку формы.

Я использую следующий код (слегка измененный для обеспечения конфиденциальности):

string input = "foo=bar";
byte[] data = Encoding.UTF8.GetBytes(input);

var request = (HttpWebRequest)WebRequest.Create("http://my.domain.com/endpoint");

request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";

using ( var stream = request.GetRequestStream() ) {
    stream.Write(request);
    stream.Close();
}

var response = request.GetResponse();

// get the response data, do backflips, save the world

Проблема в том, что во время.GetRequestStream() позвоните, сказав, что я не могу подключиться к ресурсу URL.

Однако, если я подключу точно такой же код в консольном приложении, я смогу подключиться очень хорошо.Коллеге также удалось подключиться, используя тот же код в приложении-службе WCF.

Это сводит меня с ума.Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 февраля 2012

Это звучит как проблема безопасности для меня.

Чтобы исправить, попробуйте следующее:

  • Поиграйтесь с контекстом безопасности, под которым работает asp.net.
  • Убедитесь, что брандмауэр настроен правильно - попробуйте отключить его для быстрой проверки.
  • Вернитесь к использованию сервера разработки ASP.net для тестирования с [;)]

Если это не работает, можете ли вы добавить дополнительную информацию, например, Журналы Fiddler, трассировка стека.

...