Я пытаюсь заставить ImageResizer работать с плагином TinyCache. (я буду использовать ImageResizer Essential Edition).
Я использую Windows 10 / IIS 10.0 с интегрированным режимом
У меня есть. net webform 4.7.2 веб-сайт со следующими установленными пакетами NuGet :
- ImageResizer (v4.2.5)
- ImageResizer.Plugin.TinyCache ( v4.2.5)
- ImageResizer.WebConfig (v4.2.5)
My web.config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<!--<section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false" />-->
<section name="resizer" type="ImageResizer.ResizerSection,ImageResizer" requirePermission="false" />
</configSections>
<!--check URL ~/resizer.debug.ashx-->
<resizer>
<!--Unless you (a) use Integrated mode, or (b) map all requests to ASP.NET,
you'll need to add .ashx to your image URLs: image.jpg.ashx?width=200&height=20
Using IIS7 Integrated mode or the Visual Studio web server? You can skip this step.
You also don't need to do this if you are using the .jpg.ashx syntax.-->
<pipeline fakeExtensions=".ashx" defaultCommands="autorotate.default=true" />
<plugins>
<add name="TinyCache" />
<!--<add name="VirtualFolder" virtualPath="~/" physicalPath="..\Assets" vpp="false "/>-->
<!--<add name="VirtualFolder" virtualPath="~/" physicalPath="../Assets" vpp="false "/>-->
</plugins>
</resizer>
<system.web>
<customErrors defaultRedirect="YourErrorPage.aspx"
mode="RemoteOnly">
</customErrors>
<compilation debug="true" targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
<pages>
<namespaces>
<add namespace="System.Web.Optimization" />
</namespaces>
<controls>
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
</controls>
</pages>
<httpModules>
<!-- This is for IIS7/8 Classic Mode and Cassini-->
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</httpModules>
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<!--This is for IIS7+ Integrated mode-->
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</modules>
</system.webServer>
</configuration>
Когда я отключаю плагин TinyCache (просто прокомментируйте строку <add name="TinyCache" />
), он работает, когда я пытаюсь вызвать изображение для изменения размера (например, http: ///Assets/TestImage.jpg? Height = 100; изображение изменяется; здесь я есть изображение TestImage.jpg в папке Assets в каталоге root моего веб-сайта)
Однако я получаю предупреждение на странице диагностики c http: ///resizer.debug.ashx с указанием Я должен включить кеш: (Warning): NoCache is only for development usage, and cannot scale to production use.
Итак, я включаю плагин TinyCache в web.config.
Затем я получаю предупреждение на странице диагностики c htt p: ///resizer.debug.ashx, от которого я не могу избавиться: (Warning): To potentially see additional errors here, perform an image resize request.
Если я затем попытаюсь изменить размер изображения (например, http: ///Assets/TestImage.jpg? height = 100 .... или событие (например, http: ///Assets/TestImage.jpg.ashx? Height = 100, которое мне не нужно в моем случае с Win10 - интегрированный режим IIS 10), я получаю следующую ошибку: /Assets/Porte.jpg?height=100">
Примечание: английская sh версия этой ошибки (я на французском языке) будет
Ресурс не может быть найден.
Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, его имя было изменено, или он временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.
Следует отметить, что файл /App_Data/tiny_cache.cache никогда не создается! (Однако я предоставил все привилегии в этой папке пользователю, запускающему пул IIS .... а также всем пользователям моего устройства DEV!)
Если у вас есть идея / решение, заранее большое спасибо !
Я подумываю об использовании https://imageprocessor.org/ вместо ImageResizer, поскольку без проблем :)