浏览器连接丢失到IIS 7.5

时间:2011-11-30 15:26:32

标签: asp.net-mvc-3 razor iis-7.5

我们遇到了一个奇怪的问题。我们有一些开发机器,其中一些我们没有问题,而在另一些机器上,就好像服务器完全没有意识到浏览器,反之亦然。

解决方案是使用在IIS 7.5(Windows 7 64位)上运行的C#编写的ASP.NET MVC

症状:

  • 会话变量在每个请求上都为空
  • 使用(Html.BeginForm())无法正常工作。您可以多次提交表单,在服务器上启动多个线程,并且响应会抛出“远程主机关闭连接”异常

3台机器工作正常 - 2台机器没有。我们正在用这个把头发拉出来。它显然与IIS设置或配置有关,但我们找不到问题。我们甚至在两台机器之间的IIS设置上进行了屏幕比较屏幕比较 - 一台工作,另一台不工作

非常感谢任何帮助

- 更新 - 这发生在混合环境(ASP.NET和ASP.NET MVC)中。 ASP.NET站点上的global.asax运行,但MVC global.asax不运行。如何强制global.asax运行?

- 另一个更新 - 这只发生在IE 9中 - 而不是Chrome。开始在这方面取得良好进展。

1 个答案:

答案 0 :(得分:0)

不确定我们是否已经解决了所有问题,但是当第一个请求仍在处理时,这段代码肯定适用于阻止第二个请求的IE9:

@using TestMixedApp.MVC.Models
@model TestModel

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<title>Index</title>
<script src="/TestMixedApp.MVC/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
    function disableSubmitButton() {
        $("#submitbutton").attr("disabled", true);
        $("#message").html("&nbsp;processing...");
    };
</script>
</head>
<body>
<table>
    @using (Html.BeginForm("Index", "Home", FormMethod.Post, new { autocomplete = "off", onsubmit = "disableSubmitButton()" }))
    {
       <tr>
        <td>@Html.LabelFor(m=>m.Firstname)</td>
        <td>@Html.EditorFor(m=>m.Firstname)</td>
       </tr> 
        <tr>
            <td>@Html.LabelFor(m=>m.Surname)</td>
            <td>@Html.EditorFor(m => m.Surname)</td>
        </tr>
        <tr>
            <td>Previous Firstname</td>
            <td>@Model.Firstname</td>
        </tr>
        <tr>
            <td>Previous Surname</td>
            <td>@Model.Surname</td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Go" id="submitbutton"/><span id="message"></span></td>
        </tr>
    }
</table>
</body>
</html>