将ImageResizer添加到IIS虚拟文件夹的正确方法是什么

时间:2014-04-15 00:32:57

标签: imageresizer

我的ASP.NET包含一个指向静态图像的IIS虚拟文件夹(以便提供这些图像的HTTP请求甚至不会触及我的应用程序。)

http://<server>/myAppRoot使用我的网站的网络客户:

Page1.aspx
Page2.aspx
images/MyAppLogo.png
static/file1.png <-- IIS virtual folder "static" points to D:\someOtherPath
static/file2.png

在C:\ somePath \ myAppRoot:

的服务器文件系统上
Global.asax
Page1.aspx
Page2.aspx
Web.config
bin\MyAppAssembly.dll
bin\ImageResizer.dll
images\MyAppLogo.png

服务器上的其他地方生活在D:\ someOtherPath:

的所有静态图像
file1.png
file2.png

我可以将ImageResizer添加到ASP.NET bin文件夹,与我自己的程序集一起,并将<resizer>标记添加到Web.config,ImageResizer将运行并处理来自我的实际app文件夹的任何请求。我可以使用所有ImageResizer特技来制作MyAppLogo.png舞蹈。

但是ImageResizer不会识别拦截/static/虚拟文件夹的任何请求(这是一个包含大量上传图像的文件夹,我希望它们可以随时使用小缩略图。)

如何配置ImageResizer以处理/static/虚拟文件夹?

我应该添加/static/由我们的安装程序添加,完全在我们的应用之外,并且不是我应用的Web.config中的<location>标记。

有关如何配置ImageResizer以处理/static/ IIS虚拟文件夹的任何建议吗?

2 个答案:

答案 0 :(得分:0)

我理解它的方式,ImageResizer 应该与IIS虚拟路径提供程序一起使用。

但是,VirtualFolder插件是免费提供的。见http://imageresizing.net/plugins/virtualfolder。请注意警告:

  

IIS虚拟文件夹的性能更好,因此,此插件只能用于测试,开发或作为最后的手段。

我对插件没有个人经验,但配置似乎很简单;您只需要将虚拟路径映射到物理路径,如下所示:

<add name="VirtualFolder" virtualPath="~/static/" physicalPath="D:\someOtherPath" vpp="false "/>

答案 1 :(得分:0)

好吧,直接在网络服务器上测试对myAppRoot/static/*路径的访问尝试,发现了更详细的IIS错误(403.1 Forbidden)。

先前已将/static/文件夹配置为&#34; Read&#34;访问,当它需要&#34;脚本&#34;访问。

解决方案:

<handlers><system.webServer>的{​​{1}}修改为D:\someOtherPath\Web.config