Я пытаюсь настроить действительно быстрый, сжатый, кэшированный веб-сайт со статическим контентом, чтобы обслуживать только .jpg, .css и .js.
Я хочу удалить из конфигурации сайта все функции, которые не требуются:
Но эта конфигурация продолжает давать сбой:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="false" />
<caching enabled="true" enableKernelCache="true">
<profiles>
<add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".js" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".css" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
</profiles>
</caching>
<staticContent>
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="text/javascript" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
<modules>
<clear />
<add name="HttpRedirectionModule" lockItem="false" />
<add name="StaticFileModule" lockItem="false" />
<add name="CustomLoggingModule" lockItem="false" />
<add name="CustomErrorModule" lockItem="false" />
<add name="IsapiModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
</modules>
</system.webServer>
</configuration>
Вы на самом деле не сказали, что происходит, или не предоставили сообщения об ошибках, но я собираюсь рискнуть и предположить.
Я предполагаю, что когда вы делаете <clear />
внутри модулей вы получаете ошибку «Нарушение блокировки». Это связано с тем, что на более высоком уровне иерархии настроек IIS7 раздел модулей (и сами модули) настроены как заблокированные, поэтому вы не можете переопределить / удалить их в файле web.config. Это сделано намеренно, поскольку именно модули составляют работающую систему IIS.
Чтобы иметь возможность <clear />
модулей в web.config необходимо сделать следующее:
%windir%\System32\inetsrv\config\applicationHost.config
%windir%\System32\inetsrv\config\applicationHost.config
- вам нужно будет открыть свой редактор как администратор. Кроме того, если вы используете 64-битную Windows, вам нужно будет использовать 64-битный редактор, чтобы увидеть файл.<configSections>
площадь - в sectionGroup
для system.WebServer
- будет строка, в которой говорится:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
overrideModeDefault
быть Allow
вместо того Deny
.Это все еще не позволит вам сделать <clear />
в файле web.config / modules, поскольку многие из основных модулей заблокированы индивидуально.
<modules>
раздел в applicationHost.config. lockItem
атрибут установлен на True
. Измени их всех, чтобы они были False
.Теперь вы сможете <clear />
модули в вашем файле web.config.