这是一个非常奇怪的。
我有一个asp.net MVC 1应用程序。在IIS6下,没有匿名访问权限 - 只有集成的Windows身份验证 - 每件事都可以。我的大部分Foo页面都有以下内容:
<% using (Html.BeginForm())
{ %>
Show All:
<%= Html.CheckBox("showAll", new { onClick = "$(this).parent('form:first').submit();" })%>
<% } %>
点击该复选框会导致帖子,页面重新加载,一切都很好。
当我查看访问日志时,这就是我所看到的,只有一个奇怪的地方 - 在页面第一次请求期间请求了js库,但是没有任何后续页面请求。日志看起来像:
GET / 401
GET / 200
GET /Content/Site.css 304
GET /Scripts/jquery-1.3.2.min.js 401
GET /Scripts/jquery-ui-1.7.2.custom.min.js 401
GET /Scripts/jquery.tablesorter.min.js 401
GET /Scripts/jquery-1.3.2.min.js 304
GET /Scripts/jquery-ui-1.7.2.custom.min.js 304
GET /Scripts/jquery.tablesorter.min.js 304
GET /Content/Images/logo.jpg 401
GET /Content/Images/logo.jpg 304
GET /Foo 401
GET /Foo 200
POST /Foo/Delete 302
GET /Foo/List 200
POST /Foo/List 200
这对应主页,点击“Foo”,删除一条记录,点击一个复选框(导致第二次POST)。
在IIS7.5下,它有时会失败 - 单击复选框不会导致回发,但没有明显的原因。
我注意到在IIS7.5下,每个页面请求都会重新发出js库的请求 - 第一个请求401,然后是200(OK)或304(未修改),而不是上面的日志摘录只发生在第一次请求中。
有没有办法消除401请求?时间问题可能与忽略点击有关吗?增加并发连接数会有帮助吗?还有其他想法吗?我解释这个有点不知所措。
答案 0 :(得分:0)
我希望我不是完全离开这里,但是你的脚本可能第二次没有得到请求,因为它们已经被你的浏览器缓存了,并且它不需要重新请求它们。
其次,这本身并不是一个答案,但可以帮助您解决这个问题,就是看一下Firefox的Firebug扩展中的“Net”选项卡,看看是否有任何东西出现在红色的脚本中正在加载。这表明脚本无法正确检索。 (对于你得到的那些401很奇怪。这可能是问题的一部分,但我的建议会让你知道它是否对整个问题负责或只是其中的一部分。)它还会让你明确知道什么是错误单击复选框时发生。如果你看到Bug变成红色,这有望使点击有时失败,这将更加“明显”。 (具体而言,失败了。)
祝你好运!