我通过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?
答案 0 :(得分:2)
您似乎只为IIS Classic配置了它,而不是IIS7集成模式。 必须是安装了模块的<system.webServer>
元素。
<?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>