0

我正在尝试设置一个充当图像 CDN 的 MVC4 网站,但我无法让 VirtualFolder 功能在 IIS 或 IIS Express 中用于“原始”(未修改)文件。如果我将网站切换到内置网络服务器,那么我可以请求“原始”文件并加载它。在这两种情况下,如果我使用诸如 ?width=300 之类的查询字符串,图像就会正确加载。

最终,我的目标是创建我自己的插件,该插件将从我们管理动态内容的内容服务中加载文件,但我只是想让事情正常工作,而不需要最后标记的查询字符串值,因为会有很多情况下,图像需要以原始形式加载。它们的格式类似于 somewebsite.com/images/{someid}/{somefilename}.ext。

这是一个全新的网站,我使用 NuGet 中的 MVCWebConfig 包安装了 ImageResizer。现在我有指向“~/testpath”的 VirtualFolder 插件,就像我说的,~/testpath/someimage.jpg 不起作用,但 ~/testpath/someimage.jpg?width=300 起作用。

我已经完成了故障排除、Stackoverflow 和 Google 搜索,似乎一切都设置正确,所以我只是不明白为什么内置服务器可以工作,但 IIS 和 IIS Express 不能。

请注意,这是在 Windows 7 Ultimate VS2k12 上。Express 显示为 IIS8,常规 IIS 为 7.5。

此外,我已经尝试过打开和关闭 RAMMFAR (runAllManagedModulesForAllRequests)。 编辑——我误报了没有 RAMMFAR 使内置服务器无法呈现原始文件,事实并非如此。在这两种情况下,RAMMFAR 似乎都不会影响它,但使用 vpp="true" 是造成差异的原因。

编辑此外,我尝试让插件使用 vpp="false" 以及 vpp="true"。

编辑 7/11/2013这是 resizer.debug 诊断表详细信息(在 IIS Express 中运行):

图像调整器诊断表 2013 年 7 月 11 日下午 12:50:49

2 检测到的问题:

(警告):要在此处可能看到其他错误,请执行图像调整大小请求。

(警告):NoCache 仅用于开发用途,不能扩展到生产用途。添加 DiskCache 或 CloudFront 以供生产使用

您没有使用任何付费捆绑包。

注册插件:

ImageResizer.Plugins.Basic.DefaultEncoder ImageResizer.Plugins.Basic.NoCache ImageResizer.Plugins.Basic.ClientCache ImageResizer.Plugins.Basic.Diagnostic ImageResizer.Plugins.Basic.SizeLimiting ImageResizer.Plugins.MvcRoutingShim.MvcRoutingShimPlugin GAT.Web.Cdn.Plugins。 ContentImagePlugin ImageResizer.Plugins.Basic.VirtualFolder ImageResizer.Plugins.Basic.Gradient

配置:

接受的查询字符串键:

质量,格式,缩略图,颜色1,颜色2,角度,宽度,高度,最大宽度,最大高度,w,h,比例,拉伸,裁剪,cropxunits,cropyuunits,页面,bgcolor,旋转,翻转,sourceFlip,sFlip,sRotate,borderWidth, borderColor, paddingWidth, paddingColor, ignoreicc, frame, useresizingpipeline, cache, process, margin, anchor, dpi, mode, zoom,

接受的文件扩展名:

bmp, gif, exif, png, tif, tiff, tff, jpg, jpeg, jpe, jif, jfif, jfi,

环境信息:

在 Microsoft Windows NT 6.1.7601 Service Pack 1 和 CLR 4.0.30319.18052 上运行 Microsoft-IIS/8.0 信任级别:不受限制的操作系统位数:x86 !! 警告,在 64 位操作系统(AMD64)上以 32 位运行。这将限制内存的使用!执行程序集:C:\Program Files (x86)\IIS Express\iisexpress.exe IntegratedPipeline: True

4

0 回答 0