C# MVC5申请表在提交时会导致多个post请求

C# MVC5申请表在提交时会导致多个post请求,c#,asp.net-mvc,iis-7.5,windows-server-2008,C#,Asp.net Mvc,Iis 7.5,Windows Server 2008,我们有一个MVC5/Razor应用程序,上周它突然变得非常奇怪。它托管在Windows Server 2008 R2(带有IIS 7.5)上,问题是在上周安装Windows更新后开始的。在那之前,应用程序运行得很好 问题是,当用户提交一个由10个文本字段、4个文本区域和一个下拉列表组成的简单表单时,服务器没有正确响应,导致“错误连接重置”(在Chrome中)/“页面不可用”(在IE11中) 我们在控制器的接收操作中使用带有RedirectToAction的后重定向GET模式,这通常会导致302响

我们有一个MVC5/Razor应用程序,上周它突然变得非常奇怪。它托管在Windows Server 2008 R2(带有IIS 7.5)上,问题是在上周安装Windows更新后开始的。在那之前,应用程序运行得很好

问题是,当用户提交一个由10个文本字段、4个文本区域和一个下拉列表组成的简单表单时,服务器没有正确响应,导致“错误连接重置”(在Chrome中)/“页面不可用”(在IE11中)

我们在控制器的接收操作中使用带有
RedirectToAction
的后重定向GET模式,这通常会导致302响应和重定向

表单的呈现方式如下所示:

@using (Html.BeginForm("Create", "Controller"))
{
    @Html.AntiForgeryToken()
    <div class="editor-fields">
        @Html.EditorFor(m => m.Model)
    </div>

    <div class="clear-fix"></div>
    <div class="submit-area">
        <input type="submit" value="Submit" />
    </div>
}
使用(Html.BeginForm(“创建”、“控制器”)) { @Html.AntiForgeryToken() @EditorFor(m=>m.Model) } 该操作具有以下属性:

  • [HttpPost]
  • [ValidateAntiForgeryToken]
  • [AllowAnonymous]
  • [ValidateInput(false)]
我们还使用Google Analytics和jQuery、jQuery validate、带有优化(缩小)的不引人注目的ajax。大多数JS脚本都包含在
脚本中。Render

当我们从自己的域内访问该应用程序时,该应用程序运行良好,但由于所有用户都需要从外部访问,因此我们需要修复此错误。这可能表明DNS存在问题,但我们的IT支持人员表示,DNS看起来很好,最近没有更改

以下是我们迄今为止所做和发现的:

  • inetpub\logs\LogFiles
    中的日志文件显示多个(3到10之间)POST请求,所有请求的状态代码均为302,但没有后续GET请求。实际上应该只有一个POST请求和一个GET请求
  • %windir%\System32\LogFiles\HTTPERR
    中的日志文件没有显示任何有趣的内容,只要网站达到其空闲超时值(默认值为20分钟),就会显示一堆
    定时器连接文件
    “错误”
  • 使用Chrome和IE11中的Fiddler和dev工具检查了请求,所有这些都显示了相同的请求头。使用fiddler,我们得到
    [fiddler]ReadResponse()失败:服务器没有返回此请求的完整响应。服务器返回了0个字节
    。在Chrome开发工具中,状态栏中显示
    (失败)
  • 已禁用IIS中的缓存和压缩
  • 在web.config文件中关闭CustomErrors
  • 在web.config中添加了
  • 在谷歌等搜索了答案,但到目前为止没有结果
  • 检查了最近从Windows Update安装的有关.NET 4.5.2和相关知识库文章的更新,但没有提及任何与此问题相关的内容
  • 编辑:此外,我们启用了失败的请求跟踪,但我们仅在
    inetpub\logs\FailedReqLogFiles
    文件夹中获取丢失的favicon.ico的失败请求日志
有趣的是,如果我在Chrome开发工具的“禁用缓存”中打上复选标记,应用程序也可以正常工作。这可能表明这是一个缓存问题,这也是我们尝试在IIS中打开输出缓存的原因


我们的下一步是启动新服务器(Windows 2012和更新版本的IIS)并在那里安装应用程序,或者在当前服务器上安装WireShark以进一步调查请求。但如果有人经历过这种行为并知道如何解决它,我们宁愿现在就解决它。因此,如果有人能提供帮助,请提供建议。

由于该问题似乎只发生在我们域外的用户身上,我们开始认为该问题可能与我们的防火墙有关,因此我们联系了我们的防火墙提供商,他们确认最新版本的防火墙软件存在问题。事实上,防火墙软件是在我们的服务器上安装Windows更新的同一天更新的,这可能会引起一些混乱。恢复到以前版本的防火墙软件后,问题已消失,一切正常。呸