ImageResizer 在 ConsoleApp 中有效,现在在 ASP.NET 中无效
ImageResizer worked in ConsoleApp, now does not work in ASP.NET
我一直在使用 ImageResizer (https://imageresizing.net/) 来调整图像大小。我写了一个 控制台应用程序,它正在调整我磁盘上指定目录中图像的大小。
控制台应用程序运行良好,但后来我将我的项目添加到 ASP.NET MVC 应用程序,但它不起作用。我不只是移动代码,我移动了整个项目,只是调用了一个我创建的启动方法,它与我以前的主控制台应用程序相同。我确实在我的 WebApp 中安装了来自 NuGet 的 resizer。
当我的代码执行到调整图像大小时,出现错误 "Request is not available in this context"
这是我尝试调整图像大小的部分:
var resize = new ResizeSettings(resizeParameters);
ImageBuilder.Current.Build(inFile, outFile, resize);
这是 stackTrace 输出。
at System.Web.HttpContext.get_Request()
at ImageResizer.Configuration.Performance.GlobalPerf.JobComplete(ImageBuilder builder, ImageJob job)
at ImageResizer.ImageBuilder.BuildInternal(ImageJob job)
at ImageResizer.ImageBuilder.BuildInQueue(ImageJob job, Boolean useSemaphore, Int32 maxQueuingMilliseconds, CancellationToken cancel)
at ImageResizer.ImageBuilder.Build(ImageJob job)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings)
at ImageOptimizerCode.ResizeAndOptimize.ResizeImage(String inFile, String outFile, String resizeParameters) in
E:\Vermis\ImageOptimizer\ImageOptimizerCode\ResizeAndOptimize.cs:line
176
如果有人能指出我正确的方向,指出我在这里做错了什么,那就太好了。
因为你要启动另一个项目(这里是MVC)你必须为项目配置插件。所以确保插件配置为通过以下方式启动:
一个。在 web.config 文件
的 <plugins />
部分添加 <add name="PluginName" />
或
乙。在 Global.asax
的 Application_Start
方法中创建插件实例
new PluginName().Install(ImageResizer.Configuration.Config.Current);
关于如何使用这个插件有一些代码解释:
我一直在使用 ImageResizer (https://imageresizing.net/) 来调整图像大小。我写了一个 控制台应用程序,它正在调整我磁盘上指定目录中图像的大小。
控制台应用程序运行良好,但后来我将我的项目添加到 ASP.NET MVC 应用程序,但它不起作用。我不只是移动代码,我移动了整个项目,只是调用了一个我创建的启动方法,它与我以前的主控制台应用程序相同。我确实在我的 WebApp 中安装了来自 NuGet 的 resizer。
当我的代码执行到调整图像大小时,出现错误 "Request is not available in this context" 这是我尝试调整图像大小的部分:
var resize = new ResizeSettings(resizeParameters);
ImageBuilder.Current.Build(inFile, outFile, resize);
这是 stackTrace 输出。
at System.Web.HttpContext.get_Request()
at ImageResizer.Configuration.Performance.GlobalPerf.JobComplete(ImageBuilder builder, ImageJob job)
at ImageResizer.ImageBuilder.BuildInternal(ImageJob job)
at ImageResizer.ImageBuilder.BuildInQueue(ImageJob job, Boolean useSemaphore, Int32 maxQueuingMilliseconds, CancellationToken cancel)
at ImageResizer.ImageBuilder.Build(ImageJob job)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource)
at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings)
at ImageOptimizerCode.ResizeAndOptimize.ResizeImage(String inFile, String outFile, String resizeParameters) in
E:\Vermis\ImageOptimizer\ImageOptimizerCode\ResizeAndOptimize.cs:line
176
如果有人能指出我正确的方向,指出我在这里做错了什么,那就太好了。
因为你要启动另一个项目(这里是MVC)你必须为项目配置插件。所以确保插件配置为通过以下方式启动:
一个。在 web.config 文件
的<plugins />
部分添加 <add name="PluginName" />
或
乙。在 Global.asax
的 Application_Start
方法中创建插件实例
new PluginName().Install(ImageResizer.Configuration.Config.Current);
关于如何使用这个插件有一些代码解释: