2014-04-15 40 views
1

我的ASP.NET包含一个指向静态图像的IIS虚拟文件夹(以便提供这些图像的HTTP请求甚至不会触摸我的应用程序)。什么是将ImageResizer添加到IIS虚拟文件夹的正确方法

Web客户端消耗我的网站在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将运行并处理来自我的实际应用程序文件夹的任何请求。我可以使用所有ImageResizer特技来制作MyAppLogo.png舞蹈。

但ImageResizer无法识别/static/虚拟文件夹(这是包含大量上传图片的文件夹,我希望缩略图可用于动态显示)的任何请求。

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

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

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

回答

0

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

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

但是,IIS虚拟文件夹执行得更好,所以此插件只能用于测试,开发或作为最后的手段。

我对插件没有个人经验,但配置看起来很简单;你只需要对物理路径的虚拟路径映射是这样的:

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

不,这不是它。我不能使用'VirtualFolder'插件,因为它不适用于生产部署。 –

0

好了,直接测试访问尝试到myAppRoot/static/*路径在Web服务器上透露更详细的IIS错误(403.1禁止访问)。

当需要“脚本”访问时,/static/文件夹先前已配置为“读取”访问。

解决方案:

修改的<system.webServer><handlers>D:\someOtherPath\Web.config<handlers accessPolicy="Script" />

相关问题