【问题标题】:Custom handlers for ASP.NET 2.0 Website in Classic mode in IIS 8.5 throwing 500 errorIIS 8.5 中经典模式下 ASP.NET 2.0 网站的自定义处理程序抛出 500 错误
【发布时间】:2015-06-07 17:30:43
【问题描述】:

我的 ASP.NET 2.0 网站以经典模式运行。 服务器 2001/IIS 8.5。 调用自定义处理程序 (something.abc) 时出现此错误。

我已将处理程序(something.abc)添加到 <system.webServer><handlers> 部分

<add name="Something.abc" verb="GET,HEAD" path="something.abc" type="ABC.MyHttpHandler, ABC" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified"/>

它在本地 IIS Express 中运行良好。

当我更改应用程序池设置时在服务器上:Enable 32-bit Applications= True它开始工作。

问题:为什么我必须开启 32 位模式,有什么方法可以在不启用 32 位的情况下使其工作?

【问题讨论】:

  • 您的处理程序可能针对 x86
  • @ErikFunkenbusch 我在我编辑的问题中有上述处理程序。
  • 哦,我明白了,所以它只是 isapi dll。好吧,您使用的是Framework目录中的那个,而不是Framework64目录,所以它是32位的。

标签: asp.net iis httphandler iis-8.5


【解决方案1】:

我在使用 IIS 10 的新 Windows Server 2016 机器上运行的应用程序遇到了这个问题。

它在旧的 Server 2012 机器上工作,因为那个机器安装了 32 位 Oracle 客户端,但新服务器安装了 64 位 Oracle 客户端,因此我无法设置 启用 32-位 Applications=True 而不会引起其他问题。

工作进程也设置为使用经典管道而不是集成,这是我无法更改的另一个设置以使其正常工作。 ASP.NET 也已正确安装。 (即this solution 没有帮助我。)

我有:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add name="Something.abc" verb="*" path="something.abc" type="ABC.MyHttpHandler, ABC" resourceType="Unspecified" />

为了解决这个问题,我添加了 BOTH 的这些属性(它不能只与一个或另一个一起使用):

 modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"

即最终结果是:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add name="Something.abc" verb="*" path="something.abc" type="ABC.MyHttpHandler, ABC" resourceType="Unspecified" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多