代码之家  ›  专栏  ›  技术社区  ›  Bravax

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

  •  1
  • Bravax  · 技术社区  · 16 年前

    我们正在配置一个门户,以使用ISA Server作为前端安全提供程序。

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

    在ISA监控日志中,这显示:

    连接尝试失败
    日志类型:Web代理(反向)

    一旦应用程序被编译,错误就不会出现。
    有没有人知道如何解决这个问题,这样网站第一次就能正常工作?

    • 访问的网站运行在windows server 2008 64位标准版上,适用于Sharepoint和标准.net网站。
    • windows server 2008机箱上的防火墙允许所有访问。(排除这种可能性。)
    3 回复  |  直到 16 年前
        1
  •  0
  •   JP Alioto    16 年前

    你可以 pre-complie the web site . 这更像是一项工作。

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

    %SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files
    
        2
  •  0
  •   Bravax    16 年前

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

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

        3
  •  0
  •   x0n    15 年前

    我今天也遇到了同样的问题(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秒无凭证)。在定期的挑战/响应交换中,这应该是“5”

    这让我走上了一些更曲折的调试路径,最终我发现问题在于默认情况下启用了IIS 7的内核模式身份验证。如果将其关闭:

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

    …问题消失了。这篇文章中有足够的信息,任何人都可以从技术上找出原因,所以我不想在这里重复。

    推荐文章