来自其他网站的500个错误帖子

时间:2012-04-02 08:13:54

标签: asp.net-mvc 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 

更新
 这是行动:

[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 :(得分:0)

由于您未提供有关网站运作方式的任何详细信息,因此我们只能在此猜测。所以这是我的猜测:您的控制器操作取决于某些会话或用户特定的内容,当您创建示例页面以测试POST请求并在Web浏览器中执行它时,因为您是从当前用户的上下文执行它,但是当外部网站对您的操作执行POST请求时,它失败了,因为它没有与任何用户关联(它没有发送会话cookie),并且当您尝试访问数据时控制器操作崩溃。因此,在控制器操作中添加一些日志记录,并查看来自外部网站的请求与您手动制作的请求的不同之处。