Asp.net mvc 4 ImageResizer IIS/IIS Express虚拟文件夹问题

Asp.net mvc 4 ImageResizer IIS/IIS Express虚拟文件夹问题,asp.net-mvc-4,imageresizer,Asp.net Mvc 4,Imageresizer,我正在尝试设置一个MVC4网站,该网站将充当图像CDN,但我无法在IIS或IIS Express中为“原始”(未修改)文件使用VirtualFolder功能。如果我将网站切换到内置的Web服务器,那么我可以请求“原始”文件并加载它。在这两种情况下,如果我使用a查询字符串,例如?width=300,则图像加载正确 最终,我的目标是创建我自己的插件,该插件将从我们管理动态内容的内容服务加载文件,但我只是尝试在不需要在末尾标记querystring值的情况下使其正常工作,因为在很多情况下,图像将需要以

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

最终,我的目标是创建我自己的插件,该插件将从我们管理动态内容的内容服务加载文件,但我只是尝试在不需要在末尾标记querystring值的情况下使其正常工作,因为在很多情况下,图像将需要以其原始形式加载。它们的格式类似于somewebsite.com/images/{someid}/{somefilename}.ext

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

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

请注意,这是在Windows7Ultimate,VS2k12上实现的。Express显示为IIS8,常规IIS为7.5

此外,我在打开和关闭RAMMFAR(runAllManagedModulesForAllRequests)的情况下也尝试过。编辑——我误传没有使用RAMMFAR会使内置服务器无法呈现原始文件,事实并非如此。在这两种情况下,RAMMFAR似乎都不会对其产生影响,但vpp=“true”的使用起到了作用

此外,我还尝试让插件使用vpp=“false”和vpp=“true”

编辑2013年11月7日以下是resizer.debug诊断表的详细信息(在IIS Express中运行):

图像调整器诊断表7/11/2013 12:50:49 PM

检测到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、角度、宽度、高度、, maxwidth、maxheight、w、h、刻度、拉伸、裁剪、cropxunits、, cropyunits、page、bgcolor、rotate、flip、sourceFlip、sFlip、sRotate、, borderWidth、borderColor、paddingWidth、paddingColor、ignoreicc、, 帧、useresizingpipeline、缓存、进程、边距、锚定、dpi、模式、, 缩放

接受的文件扩展名:

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

环境资料:

在Microsoft Windows NT 6.1.7601服务上运行Microsoft IIS/8.0 包1和CLR 4.0.30319.18052信任级别:无限制操作系统比特数: x86!!警告,在64位操作系统(AMD64)上以32位运行。这将 限制内存使用!!正在执行程序集:C:\ProgramFiles(x86)\IIS Express\iisexpress.exe集成管道:True


我们需要诊断页面的要点…添加了上述诊断;我应该注意的另一件事是,当我在调试模式下运行IIS或IIS Express并尝试访问“原始”文件时,它不会落入自定义插件上的任何方法中。如果我添加查询字符串,它会。我只能假设VirtualFolder也发生了完全相同的行为(我之所以将VirtualFolder添加到项目中,是因为它是我插件的一个不错的模板)。如果没有源代码,我们就无法支持自定义插件。如果这发生在VirtualFolder的股票版上,那就不同了;但是你的诊断页面显示了一个自定义插件。VirtualFolder在诊断页面中,看起来它没有捕捉到换行符,所以它显示在我的自定义插件行的末尾。我在VirtualFolder插件中也有这种行为。我首先添加了VirtualFolder插件,以便了解它的工作原理,并在VirtualFolder之后对代码进行建模(在很小的程度上),因为我意识到为了处理我的用例,我需要从VirtualPathProvider继承,而不是简单地从IVirtualImageProvider继承。我很乐意在我的插件中提供非常简单和非常不完整的代码;听起来这不是一个“干净”的项目。使用VirtualFolder和test设置一个新的空文件夹。