Ошибка доступа к некомпилированным страницам с помощью ISA Server 2006 SP1 - PullRequest
1 голос
/ 09 марта 2009

Мы находимся в процессе настройки портала для использования ISA Server в качестве нашего поставщика безопасности переднего плана.
Поэтому мы используем ISA Server 2006 SP1.

К сожалению, когда мы обращаемся к приложениям .net через ISA Server, при первом обращении к ним.
то есть они еще не скомпилированы, появляется следующая ошибка:
Код ошибки: 500 Внутренняя ошибка сервера. Неверный параметр. (87)

В журналах мониторинга ISA это показывает:

Неудачная попытка подключения
Тип журнала: веб-прокси (обратный)
Статус: 87 Параметр неверный.

Как только приложение скомпилировано, ошибка никогда не появляется.
Кто-нибудь знает, как решить эту проблему, чтобы сайт работал правильно с первого раза?

Некоторая дополнительная информация:

  • Доступ к веб-сайтам выполняется на 64-разрядной версии Windows Server 2008 - стандартная версия и применяется как для Sharepoint, так и для стандартных веб-сайтов .net.
  • ISA Server работает под управлением Windows Server 2003 R2 SP2 Standard eidtion
  • Брандмауэр на коробке Windows Server 2008 разрешает любой доступ. (Чтобы исключить это.)
  • Ничего странного не появляется в журналах IIS или журналах межсетевого экрана.

Ответы [ 3 ]

0 голосов
/ 15 апреля 2009

Эта проблема была вызвана тем, что в качестве значения делегирования аутентификации на ISA Server было установлено NTLM, когда IIS был настроен для принятия аутентификации Windows. Эта комбинация является проблемой в моей среде.

Переключение на обычную аутентификацию или любую другую допустимую комбинацию работает правильно, поэтому я использую другую настройку делегирования аутентификации.

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

У меня была та же проблема сегодня (ISA 2006 / sp1, публикующая SharePoint через ISA HTML Form Auth, проходящий через NTLM auth), и потратил несколько часов на ее отладку. Вы правы, именно необходимость компилировать страницу вызывает ее, и только IISRESET вызывает проблему; App бассейн рециркуляции нет. Обычная аутентификация работает, а NTLM - нет. Продолжайте читать для исправления.

Если вы заглянете в свой журнал IIS, то увидите, что - это что-то странное, а именно 401 ответ IIS на конкретный HTTP-запрос с небольшой подсказкой:

... GET /auth.aspx - 80 - ... Mozilla/4.0+(compatible;...) 401 1 2148074254 734

Обратите внимание на код ошибки 2148074254 (0x8009030e SEC_E_NO_CREDENTIALS). В обычном обмене вызовами / ответами это должно быть «5».

Это привело меня к некоторым извилистым путям отладки, и в итоге я обнаружил, что проблема заключается в том, что в IIS 7 аутентификация в режиме ядра включена по умолчанию. Если вы выключите его:

%windir%\system32\inetsrv\appcmd set config -section:windowsAuthentication -useKernelMode:false

... проблема исчезает. В этом посте достаточно информации, чтобы кто-нибудь мог найти технические причины для этого, поэтому я не буду беспокоиться об этом.

-Oisin

0 голосов
/ 15 апреля 2009

Вы можете предварительно заполнить веб-сайт . Это больше работы.

Вы пытались очистить каталог вывода компиляции для ASP.NET? Там может быть конфликт.

%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files
...