簡體   English   中英

IIS 8.5中經典模式下ASP.NET 2.0網站的自定義處理程序拋出500錯誤

[英]Custom handlers for ASP.NET 2.0 Website in Classic mode in IIS 8.5 throwing 500 error

我有以經典模式運行的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位的情況下工作?

我在帶有IIS 10的新Windows Server 2016機器上運行的應用程序遇到了此問題。

它在舊的Server 2012機器上工作,因為該機器安裝了32位Oracle客戶端,但是新服務器安裝了64位Oracle客戶端,因此我無法設置Enable 32-bit Applications = True,而不會導致其他問題。

還設置了工作進程以使用經典管道而不是集成管道 ,這是我無法更改的另一種設置,以便使其正常運行。 ASP.NET也已正確安裝。 (即此解決方案對我沒有幫助。)

我有:

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

of these attributes (it did not work with only one or the other): 為了解決這個問題,我同時添加了以下屬性(它不適用於一個或另一個):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM