我必须安装一个需要在经典模式下运行的 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 的 path 属性指定将调用此处理程序的 URL 的路径或通配符规范。
例如,如果您希望仅在请求文件时调用处理程序dummy.abc
,则路径属性将包含“dummy.abc”;同样,如果您希望为任何具有 .abc 扩展名的文件调用处理程序,则路径属性将包含“*.abc”。
编辑
这篇文章可能会有帮助:请求限制对话框。
使用“请求限制”对话框指定可选限制,例如您希望处理程序处理请求时所请求的资源类型或 HTTP 动词。仅当您有特定需要限制处理程序处理请求的条件时才配置限制。当您不配置限制时,处理程序将处理请求,而不管请求的资源类型和指定的 HTTP 动词如何。
我认为您必须禁用现有默认处理程序的限制(“仅当请求映射到时才调用处理程序”)。