【问题标题】:asp.net mvc, IIS 6 vs IIS7.5, and integrated windows authentication causing javascript errors?asp.net mvc、IIS 6 与 IIS7.5 以及集成的 windows 身份验证导致 javascript 错误?
【发布时间】:2010-06-11 17:44:34
【问题描述】:

这是一个非常奇怪的。

我有一个 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 请求吗?时间问题是否与点击被忽略有关?增加并发连接数会有帮助吗?还有其他想法吗?我有点不知所措。

【问题讨论】:

    标签: jquery asp.net-mvc iis-7 iis-6 security


    【解决方案1】:

    我希望我在这里不是完全离题,但您的脚本可能不会被第二次请求,因为它们已经被您的浏览器缓存,并且它认为不需要重新请求它们。

    其次,这本身不是一个答案,但可以帮助您解决这个问题,请查看 Firefox 的 Firebug 扩展中的“网络”选项卡,看看脚本所在的位置是否有红色显示正在加载。这表明脚本未能正确检索。 (奇怪的是你得到的那些 401。这可能是问题的一部分,但我在这里的建议会让你知道它是对整个问题负责还是只是其中的一部分。)它还会让你具体知道什么是错误单击复选框时发生。如果您看到 Bug 变为红色,这有望使点击有时失败的乳清更加“明显”。 (具体来说是什么失败了。)

    祝你好运!

    【讨论】:

    • 401 请求是身份验证过程的标准部分 - 请参阅w3.org/Protocols/rfc2616/rfc2616-sec10.html,其中提到“客户端可以使用合适的授权标头字段重复请求”这是我假设发生在这里.不幸的是,这是一个客户报告的错误,他们在他们的环境中锁定了没有 firefox 的机器 - 只有 IE7,这就是我挖掘日志以尝试分析问题的原因。
    猜你喜欢
    • 2010-11-03
    • 1970-01-01
    • 2011-02-22
    • 2011-09-02
    • 2010-09-05
    • 2015-01-31
    • 1970-01-01
    • 2010-09-12
    • 2017-10-15
    相关资源
    最近更新 更多