Сообщение об ошибке 500 с другого веб-сайта - PullRequest
0 голосов
/ 02 апреля 2012

Я делаю POST-запрос для внешнего сайта. Сайт возвращает мне данные, а также метод POST. У меня нет доступа к внешнему сайту (это банк). Также есть тестовая страница, для проверки того, что действие контроллера работает.

Проблема в том, что когда я выполняю POST со страницы тестирования, все работает нормально: внешний сайт получает мой POST и отправляет мне результаты обратно (действие контроллера работает), но когда я выполняю POST на внешнем сайте, он получает мой POST, но я не могу получить POST из банка.

Это журнал IIS (первая строка из банка, вторая с тестовой страницы):

2012-04-02 08:00:11 82.200.165.5 POST /Home/PostLinkTest - 80 - 193.93.56.223 Java/1.6.0_31 500 0 0 31

2012-04-02 08:01:58 82.200.165.5 POST /Home/PostLinkTest - 80 - 2.133.42.201 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:11.0)+Gecko/20100101+Firefox/11.0 200 0 0 227 

UPDATE:
Это действие:

[HttpPost]
        public ActionResult PostLinkTest()
        {

            StreamWriter erFile = new StreamWriter(Path.Combine(Server.MapPath("~"), "\\error\\error.txt"), true);

            string strTimeStamp = DateTime.Now.ToString("dd MMM yyyy HH:mm");
            erFile.WriteLine("Date " + strTimeStamp);
            erFile.WriteLine("------------------------");
            erFile.WriteLine("PostLinkTest ");
            erFile.WriteLine("------------------------ X -------------------------");
            erFile.Close();   

            return View("ShowResponse");

        }

ОБНОВЛЕНИЕ 2: : попытка отловить ошибку:

void Application_Error(object sender, EventArgs e)
       {
           var error = Server.GetLastError();
           StreamWriter erFile = new StreamWriter(Path.Combine(Server.MapPath("~"), "\\error\\error.txt"), true);

           string strTimeStamp = DateTime.Now.ToString("dd MMM yyyy HH:mm");
           erFile.WriteLine("Date " + strTimeStamp);
           erFile.WriteLine("------------------------");
           erFile.WriteLine("ApplicationError: " + error.Message + "\n" + error.StackTrace);
           erFile.WriteLine("------------------------ X -------------------------");
           erFile.Close();
        }

ОБНОВЛЕНИЕ 3:
Я включил трассировку, и результаты следующие. Это скриншот: enter image description here Спасибо.
PS. Версия IIS 7.5.

1 Ответ

0 голосов
/ 02 апреля 2012

Поскольку вы не предоставили никакой информации о том, как работает ваш сайт, мы можем только догадываться здесь. Итак, вот мое предположение: действие вашего контроллера зависит от некоторого сеанса или чего-то конкретного пользователя, и когда вы создали образец страницы для проверки запроса POST и выполнили его в веб-браузере, он работал, потому что вы выполняли его из контекста текущего пользователя, но Когда внешний веб-сайт выполнил POST-запрос к вашему действию, он завершился неудачей, потому что он не был связан ни с одним пользователем (он не отправил файл cookie сеанса), и действие вашего контроллера потерпело крах при попытке доступа к данным. Поэтому добавьте в лог действия вашего контроллера и посмотрите, чем отличается запрос от внешнего веб-сайта от запроса, созданного вами вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...