HttpHandlers 实际上是相当简单的组件。
首先,您需要创建一个继承 IHttpHandler 或 IHttpAsyncHandler 的类(供您使用,我建议使用 IHttpHandler,因为实际上并没有做繁重的工作)。
然后编译 DLL 并将其放入 Web 应用程序的 bin 文件夹中。
现在是棘手的部分。在 web.config 文件中部署 HttpHandlers 很棘手,因为它在 IIS6、IIS7 集成模式和 IIS7 经典模式之间有所不同。最好看的地方是这个 MSDN 页面:
How to: Register HTTP Handlers
IIS6
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="SampleHandler.new"
type="SampleHandler, SampleHandlerAssembly" />
</httpHandlers>
<system.web>
</configuration>
IIS7 经典模式
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="SampleHandler.new"
type="SampleHandler, SampleHandlerAssembly" />
</httpHandlers>
<system.web>
<system.webServer>
<add name=SampleHandler" verb="*" path="SampleHandler.new"
Modules="IsapiModule"
scriptProcessor="FrameworkPath\aspnet_isapi.dll"
resourceType="File" />
</system.webServer>
</configuration>
IIS7 集成模式
<configuration>
<system.webServer>
<handlers>
<add name="SampleHandler" verb="*"
path="SampleHandler.new"
type="SampleHandler, SampleHandlerAssembly"
resourceType="Unspecified" />
</handlers>
<system.webServer>
</configuration>
如您所见,每个 IIS 配置都需要在 web.config 文件的略有不同部分中的条目。我的建议是在每个位置添加条目,以便 IIS 配置更改不会破坏您的 HttpHandler。