带有 EPiServer 的 ImageProcessor 不工作
ImageProcessor with EPiServer not working
我正在尝试使用 ImageProcessor 配置 EPiServer 9 站点,但无法正常工作。
我安装了以下 nuget 包:
ImageProcessor
ImageProcessor.Web
ImageProcessor.Web.Config
默认配置没有任何反应。在 config/imageprocessor/security.config ...
中使用以下自定义配置
<security>
<services>
<service name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
<settings>
<setting key="MaxBytes" value="8194304" />
<setting key="Timeout" value="30000" />
<setting key="Host" value="http://site.local/globalassets/"/>
</settings>
</service>
<service prefix="remote.axd" name="RemoteImageService" type="ImageProcessor.Web.Services.RemoteImageService, ImageProcessor.Web">
<settings>
<setting key="MaxBytes" value="4194304" />
<setting key="Timeout" value="3000" />
<setting key="Protocol" value="http" />
</settings>
<whitelist>
</whitelist>
</service>
</services>
</security>
...似乎 ImageProcessor 正在尝试调整我的图像大小,但出现以下错误...
[ImageFormatException: Input stream is not a supported format.]
ImageProcessor.ImageFactory.Load(Stream stream) +523
ImageProcessor.Web.HttpModules.<ProcessImageAsync>d__34.MoveNext() +3308
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62
System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) +64
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +162
...当尝试将图像调整为 200px 宽度时,如下所示:
http://site.local/globalassets/sample_image.jpg?width=200
有人对我如何让它工作有任何建议吗?图像在没有宽度参数的情况下正常显示:
在我使用 EPiServer 和 ImageProcessor 的项目中,我总是不得不创建自己的 IImageService。
像这样:
https://gist.github.com/andreas-cloudnine/34dc468205a230f0579585db17aa1593
使用的 ImageFile 是您项目中继承自 EPiServer.Core.ImageData 的媒体类型。
那你也要在web.config中使用它,只需将整个部分替换成这样的配置即可:
<security>
<services>
<service name="EPiServerImageService" type="YourSite.EPiServerImageService, YourSite" />
</services>
</security>
我正在尝试使用 ImageProcessor 配置 EPiServer 9 站点,但无法正常工作。
我安装了以下 nuget 包:
ImageProcessor
ImageProcessor.Web
ImageProcessor.Web.Config
默认配置没有任何反应。在 config/imageprocessor/security.config ...
中使用以下自定义配置<security>
<services>
<service name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
<settings>
<setting key="MaxBytes" value="8194304" />
<setting key="Timeout" value="30000" />
<setting key="Host" value="http://site.local/globalassets/"/>
</settings>
</service>
<service prefix="remote.axd" name="RemoteImageService" type="ImageProcessor.Web.Services.RemoteImageService, ImageProcessor.Web">
<settings>
<setting key="MaxBytes" value="4194304" />
<setting key="Timeout" value="3000" />
<setting key="Protocol" value="http" />
</settings>
<whitelist>
</whitelist>
</service>
</services>
</security>
...似乎 ImageProcessor 正在尝试调整我的图像大小,但出现以下错误...
[ImageFormatException: Input stream is not a supported format.]
ImageProcessor.ImageFactory.Load(Stream stream) +523
ImageProcessor.Web.HttpModules.<ProcessImageAsync>d__34.MoveNext() +3308
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62
System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) +64
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +162
...当尝试将图像调整为 200px 宽度时,如下所示:
http://site.local/globalassets/sample_image.jpg?width=200
有人对我如何让它工作有任何建议吗?图像在没有宽度参数的情况下正常显示:
在我使用 EPiServer 和 ImageProcessor 的项目中,我总是不得不创建自己的 IImageService。
像这样:
https://gist.github.com/andreas-cloudnine/34dc468205a230f0579585db17aa1593
使用的 ImageFile 是您项目中继承自 EPiServer.Core.ImageData 的媒体类型。
那你也要在web.config中使用它,只需将整个部分替换成这样的配置即可:
<security>
<services>
<service name="EPiServerImageService" type="YourSite.EPiServerImageService, YourSite" />
</services>
</security>