我在经典模式下运行ASP.NET 2.0网站。 Server 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中运行良好。
在我更改应用程序池设置时在服务器上:启用32位应用程序= True 它开始工作。
问题:为什么我必须转为32位模式,有没有什么方法可以让它在没有启用32位的情况下工作?
答案 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"