Я разрабатывал собственный обработчик HTTP.Используя новый раздел web.config <httphandlers>
для ASP.NET 4.0 и IIS7, это прекрасно работает на моей машине для разработки.
Однако, когда я загружаю код в свою учетную запись общего хостинга, я получаю 500Ошибка сервера.Я позвонил в свою хостинговую компанию, и они сказали, что сервер сообщает об ошибке при обнаружении параметра web.config, который не относится к интегрированному режиму конвейера.
Когда он переключил IIS с интегрированного в классический режим, домашняя страницазатем загружается нормально, но все мои перенаправленные страницы сообщают об ошибке сервера 403.
Я почти уверен, что мне нужен интегрированный режим для работы секции <httphandlers>
, но я определенно не парень IIS / admin,Кто-нибудь имеет какие-либо идеи, в чем может быть проблема или что я могу попробовать дальше?
РЕДАКТИРОВАТЬ: Основная часть моего обновленного web.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
[...]
</connectionStrings>
<appSettings>
[...]
</appSettings>
<system.web>
<httpHandlers>
<add verb="*" path="*.zip" type="BlackBelt.ZipHttpHandler"/>
</httpHandlers>
<compilation debug="false" targetFramework="4.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<add verb="*" path="BlackBelt.ZipHttpHandler" name="BlackBelt.ZipHttpHandler" type="BlackBelt.ZipHttpHandler"/>
</handlers>
<!-- Redirect domain.com to www.domain.com -->
<rewrite>
<rules>
<clear/>
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$"/>
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>