我们正在处理配置门户以使用ISA Server作为我们的前端安全提供程序 所以我们使用的是ISA Server 2006 SP1。
不幸的是,当我们第一次访问.net时,我们通过ISA Server访问.net应用程序
即它们尚未编译,出现以下错误:
错误代码:500内部服务器错误。参数不正确。 (87)
在ISA监控日志中,显示:
连接尝试失败
日志类型:Web代理(反向)
状态:87参数不正确。
编译应用程序后,错误永远不会出现 有谁知道如何解决这个问题,所以网站第一次正常工作?
其他一些信息:
答案 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