我必須安裝一個需要在經典模式下運行的 httphandler。我在 iis 上創建了一個應用程序,它使用經典的應用程式集區並將處理程序程序集放在那裡。
供應商在部署文件中給了我一個如下所示的配置:
<system.web>
<globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" />
<httpModules>
</httpModules>
<httpHandlers>
<add verb="*" path="*" type="ProductName.ProductName, ProductName" />
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="someUnspecificName" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>
在應用程式上請求 URL 時收到的錯誤是 404,所以我猜根本沒有使用該句柄。
64位元系統的配置看起來還可以嗎?
答案1
你確定在
<httpHandlers>
<add verb="*" path="*" type="ProductName.ProductName, ProductName" />
</httpHandlers>
您的供應商告訴您使用path="*"
?
httphandler 的路徑屬性指定將為其呼叫此處理程序的 URL 的路徑或通配符規範。
例如,如果您希望僅在dummy.abc
請求檔案時呼叫處理程序,則路徑屬性將包含「dummy.abc」;同樣,如果您希望為任何具有 .abc 副檔名的檔案呼叫處理程序,則路徑屬性將包含「*.abc」。
編輯
這篇文章可能會有所幫助:請求限制對話框。
使用「請求限制」對話方塊指定您希望處理程序處理請求的可選限制,例如請求的資源類型或 HTTP 動詞。僅當您有特定需要限制處理程序處理請求的條件時才配置限制。當您不配置限制時,處理程序將處理請求,無論請求的資源類型和指定的 HTTP 動詞如何。
我認為您必須停用現有預設處理程序的限制(“僅當請求對應到時才呼叫處理程序”)。