使用ISA Server 2006 SP1访问未编译页面时出错

时间:2009-03-09 14:52:46

标签: .net isaserver

我们正在处理配置门户以使用ISA Server作为我们的前端安全提供程序 所以我们使用的是ISA Server 2006 SP1。

不幸的是,当我们第一次访问.net时,我们通过ISA Server访问.net应用程序 即它们尚未编译,出现以下错误:
错误代码:500内部服务器错误。参数不正确。 (87)

在ISA监控日志中,显示:

  

连接尝试失败
  日志类型:Web代理(反向)
  状态:87参数不正确。

编译应用程序后,错误永远不会出现 有谁知道如何解决这个问题,所以网站第一次正常工作?

其他一些信息:

  • 访问的网站在Windows Server 2008 64位标准版上运行,适用于Sharepoint以及标准.net网站。
  • ISA Server正在Windows Server 2003 R2 SP2标准版上运行
  • Windows Server 2008上的防火墙允许所有访问。 (为了排除这一点。)
  • IIS日志或防火墙日志中没有任何奇怪的内容。

3 个答案:

答案 0 :(得分:0)

你可以pre-complie the web site。这更像是一种解决方法。

您是否尝试清除ASP.NET的编译输出目录?你可能会遇到一些冲突。

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

答案 1 :(得分:0)

此问题是由ISA Server中的身份验证委派值设置为NTLM而IIS设置为接受Windows身份验证引起的。 这种组合在我的环境中似乎是一个问题。

将其更改为基本身份验证或任何其他有效组合正常工作,因此我将使用不同的身份验证委派设置。

答案 2 :(得分:0)

我今天遇到了同样的问题(ISA 2006 / sp1通过ISA HTML Form Auth发布SharePoint,通过NTLM身份验证)并花了几个小时调试它。你是对的,编译触发它的页面是必要的,只有IISRESET会导致问题;应用程序池回收没有。基本身份验证有效,但NTLM没有。继续阅读修复。

如果您查看IIS日志,您会看到 有些奇怪的地方,即来自IIS的特定HTTP请求的401回复,并带有一点提示:

... 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