asp.net mvc, IIS 6 против IIS7.5 и встроенная проверка подлинности Windows, вызывающая ошибки JavaScript? - PullRequest
0 голосов
/ 11 июня 2010

Это очень странно.

У меня есть приложение 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», удалите запись, установите флажок (который вызывает 2-й POST).

В IIS7.5 иногда происходит сбой - нажатие на флажок не вызывает обратную передачу, но нет очевидных причин, почему это так.

В IIS7.5 я заметил, что каждый отдельный запрос страницы перезапускает запросы для библиотек js - первый - 401, затем 200 (ОК) или 304 (не измененный), в отличие от приведенный выше фрагмент журнала, где это произошло только во время 1-го запроса.

Есть ли способ устранить 401 запрос? Может ли проблема синхронизации иметь какое-то отношение к игнорируемому клику? Поможет ли увеличение числа одновременных подключений? Есть еще идеи? Я немного растерялся, чтобы объяснить это.

1 Ответ

0 голосов
/ 12 июня 2010

Я надеюсь, что я здесь не совсем неосновный, но ваши скрипты могут не запрашиваться во второй раз, потому что они уже кэшированы вашим браузером, и он не чувствует необходимости повторного запроса.

Во-вторых, и это не ответ сам по себе, но может помочь вам решить эту проблему, это посмотреть на вкладку «Net» в расширении Firebug для Firefox и посмотреть, если что-то отображается красным, гдескрипты загружаются.Это будет указывать на то, что сценарий не удалось получить правильно.(Странно насчет тех 401, которые вы получаете. Это может быть частью проблемы, но мое предложение здесь даст вам знать, отвечает ли оно за всю проблему или только за ее часть.) Это также даст вам знать, что именно является ошибкой.происходит, когда вы нажимаете флажок.Мы надеемся, что это сделает это более «очевидным», если щелчок иногда не срабатывает, если вы видите, что ошибка становится красной.(А что конкретно провалилось.)

Удачи!

...