IIS 8.5中的经典模式下的ASP.NET 2.0网站的自定义处理程序抛出500错误

时间:2015-04-02 16:58:54

标签: asp.net iis httphandler iis-8.5

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

enter image description here

我将我的处理程序(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中运行良好。

在我更改应用程序池设置时在服务器上:启用32位应用程序= True 它开始工作。

问题:为什么我必须转为32位模式,有没有什么方法可以让它在没有启用32位的情况下工作?

1 个答案:

答案 0 :(得分:0)

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

它正在使用旧版Server 2012,因为那个安装了32位Oracle客户端,但新服务器安装了64位Oracle客户端,因此我无法设置启用32- bit Applications = True 而不会导致其他问题。

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

我有:

(function() {

         var table = document.getElementById("userdata"); 

         var people = [];

         fetch('https://jsonplaceholder.typicode.com/posts')
                    .then(data => data.json())
                    .then(json => json.map(f=>{
                    var tblRow = "<tr>" + "<td>" + f.userId + "</td>" +
                     "<td>" + f.id + "</td>" + "<td>" + f.title + "</td>" +  "<td>" + f.body + "</td>" + "</tr>"
                    table.innerHTML += tblRow;
                    }))
                    })();

为了解决这个问题,我添加了 BOTH 这些属性(它不能只用于其中一个):

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