【问题标题】:Error accessing uncompiled pages using ISA Server 2006 SP1使用 ISA Server 2006 SP1 访问未编译页面时出错
【发布时间】:2009-03-09 14:52:46
【问题描述】:

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

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

在 ISA 监控日志中,显示:

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

一旦应用程序被编译,错误就不会出现。
有谁知道如何解决这个问题,以便网站第一次正常运行?

一些附加信息:

  • 访问的网站在 windows server 2008 64 位标准版上运行,并且出现在 Sharepoint 和标准 .net 网站上。
  • ISA Server 正在 Windows server 2003 R2 SP2 Standard eidtion 上运行
  • windows server 2008 机器上的防火墙允许所有访问。 (排除这种情况。)
  • IIS 日志或防火墙日志中没有出现任何异常情况。

【问题讨论】:

  • 抱歉,我看不出那篇文章与我的问题有何关联。
  • 我假设您在 ISA 后面使用 IIS。您是否检查了 IIS 日志以了解初始请求期间发生的情况。 ISA 可能会阻止诸如 HTTP 3XX 重定向之类的东西。我见过在第一次访问网站时会发生这种情况的系统。

标签: .net isaserver


【解决方案1】:

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

您是否尝试过清除 ASP.NET 的编译输出目录?那里可能有一些冲突。

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

【讨论】:

  • 是的,我建议这样做,但似乎没有其他人遇到此问题,看来我的配置有问题,所以我宁愿正确修复它。
  • 清除临时 ASP.NET 文件没有解决问题。
【解决方案2】:

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

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

【讨论】:

  • 很高兴您能够解决它! (该死,我本可以得到那个:)
  • 我今天遇到了同样的问题,但基本身份验证不是我的选择。详情见我的回答。
【解决方案3】:

我今天遇到了同样的问题(ISA 2006/sp1 通过 ISA HTML 表单身份验证发布 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

...问题消失了。这篇文章中有足够的信息供任何人挖掘其技术原因,所以我不会在此重复它。

-奥辛

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多