如何使用IIS7在web.config中设置处理程序?

时间:2012-01-07 12:02:15

标签: asp.net

我有一个处理程序,在运行时它会在特定文件夹的图像上创建水印。问题在于它有效,但现在却没有。

我所做的就是改变托管。

我的web.config看起来像这样:

<handler>
 <add verb="*" name="ImageWatermarkHandler" type="ImageWatermarkHandler" 
      path="Pics/*.jpg,Pics/*.png"  modules="IsapiModule"
      scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" 
      resourceType="Unspecified" preCondition="integratedMode" />
</handler>

你能帮帮我吗?

2 个答案:

答案 0 :(得分:7)

在IIS 7下,您必须在web.config的configuration/system.webServer/handlers元素下指定自定义http处理程序和模块(与旧版IIS不同,其中元素为configuration/system.web/httpHandlers)。

集成模式(您只需要处理程序部分)和经典模式(您需要处理程序和httpHandler)之间存在差异。有关详细信息,请参阅MSDN entry

编辑:首先我没有注意到集成模式的前提条件,新主机是否可以在经典模式下运行您的应用程序?

答案 1 :(得分:3)

您的配置文件应该如下所示,

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="Pics/*.jpg,Pics/*.png" type="ImageWatermarkHandler"/>
    </httpHandlers>
  </system.web>
  <system.webServer>
    <handlers>
      <add verb="*" path="Pics/*.jpg,Pics/*.png" name="ImageWatermarkHandler" type="ImageWatermarkHandler"/>
    </handlers>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

了解更多信息, http://msdn.microsoft.com/en-us/library/bb515343.aspx