ImageResizer在使用Visual Studio进行测试时工作 - 而不是在生产?

时间:2016-05-11 16:12:27

标签: imageresizer

我通过NuGet安装了ImageResizer,当我从Visual Studio运行ASP.Net MVC网站时,它运行正常。我可以访问/resizer.debug页面,它说一切都很好。

当我将站点从Visual Studio发布到同一台机器上的主IIS实例时,ImageResizer不起作用,当我浏览到/resizer.debug时,我收到404 Not Found错误。

我发布了web.config并验证了所有图像缩放器组件都在那里。例如:

<httpModules><add name="ImageResizingModule" type="ImageResizer.InterceptModule" /></httpModules></system.web>

ImageResizer dll也位于/ bin目录中。

但是,没有任何事情发生,调试页面也不会显示。

在发布项目时,是否需要在IIS7上配置ImageResizer?

1 个答案:

答案 0 :(得分:2)

您似乎只为IIS Classic配置了它,而不是IIS7集成模式。 必须是安装了模块的<system.webServer>元素。

From the installation guide

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
   <configSections>
     <section name="resizer" type="ImageResizer.ResizerSection,ImageResizer"  requirePermission="false"  />
   </configSections>

   <resizer>
     <!-- Unless you (a) use Integrated mode, or (b) map all requests to ASP.NET, 
          you'll need to add .ashx to your image URLs: image.jpg.ashx?width=200&height=20 -->
     <pipeline fakeExtensions=".ashx" defaultCommands="autorotate.default=true"/>

     <plugins>
       <add name="DiskCache" />
       <!-- <add name="PrettyGifs" /> -->
       <!-- <add name="SimpleFilters" /> -->
       <!-- <add name="S3Reader" /> -->
     </plugins>  
   </resizer>

   <system.web>
     <httpModules>
       <!-- This is for IIS7/8 Classic Mode and Cassini-->
       <add name="ImageResizingModule" type="ImageResizer.InterceptModule"/>
     </httpModules>
   </system.web>

   <system.webServer>
     <validation validateIntegratedModeConfiguration="false"/>
     <modules>
       <!-- This is for IIS7/8 Integrated mode -->
       <add name="ImageResizingModule" type="ImageResizer.InterceptModule"/>
     </modules>
   </system.webServer>
 </configuration>