【问题标题】:What's the right way to add ImageResizer to an IIS virtual folder将 ImageResizer 添加到 IIS 虚拟文件夹的正确方法是什么
【发布时间】:2014-04-15 00:32:57
【问题描述】:

我的 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 文件夹以及我自己的程序集,并将 &lt;resizer&gt; 标记添加到 Web.config,ImageResizer 将运行并处理来自我的实际应用程序文件夹的任何请求。我可以使用所有 ImageResizer 特技让 MyAppLogo.png 跳舞。

但 ImageResizer 无法识别拦截任何对 /static/ 虚拟文件夹的请求(该文件夹包含大量上传的图像,我想要即时使用小缩略图)。

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

我应该补充一点,/static/ 是由我们的安装程序添加的,完全在我们的应用程序之外,而不是我应用程序的 Web.config 中的 &lt;location&gt; 标记。

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

【问题讨论】:

    标签: imageresizer


    【解决方案1】:

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

    但是,有一个免费的 VirtualFolder 插件。见http://imageresizing.net/plugins/virtualfolder。注意警告:

    然而,IIS 虚拟文件夹的性能更好,所以这个插件应该只用于测试、开发或作为最后的手段。

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

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

    【讨论】:

    • 不,不是这样。我不能使用 VirtualFolder 插件,因为它不适用于生产部署。
    【解决方案2】:

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

    /static/ 文件夹之前已配置为具有“读取”访问权限,而它需要“脚本”访问权限。

    解决方案:

    修改D:\someOtherPath\Web.config&lt;system.webServer&gt;&lt;handlers&gt;&lt;handlers accessPolicy="Script" /&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2011-01-20
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多