Я написал модуль аутентификации пользовательских форм, и когда я добавляю его в web.config моего приложения MVC2 и запускаю под IIS7.5, я получаю ошибку HTTP 403.14.Если я пытаюсь перейти к любому из перенаправленных URL-адресов, я просто получаю ошибку 404.Раздражает то, что я провел все тесты с использованием Cassini без проблем.Я применил все исправления от всех подобных проблем безрезультатно.Проблема, кажется, в том, что с моим зарегистрированным модулем Mvc Routing перестает работать.Очевидно, что это может показаться моим модулем, но почему он работал все это время, используя встроенный веб-сервер?Вот части System.x моего web.config:
<system.web>
<compilation debug="true" defaultLanguage="c#" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="Ewdev.Gatekeeper.Security, Version=1.0.0.0, Culture=neutral, PublicKeyToken=02ca582b160d0e09" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms defaultUrl="/" loginUrl="/Authentication/Login" enableCrossAppRedirects="true" name=".GKAUTH" path="/" requireSSL="false" timeout="1440" />
</authentication>
<membership defaultProvider="GatekeeperMembershipProvider" userIsOnlineTimeWindow="120">
<providers>
<clear />
<add name="GatekeeperMembershipProvider" type="Ewdev.Security.MembershipProviders.GatekeeperMembershipProvider, Ewdev.Gatekeeper.Security, Version=1.0.0.0, Culture=neutral, PublicKeyToken=02ca582b160d0e09" connectionStringName="Ewdev Database" minRequiredPasswordLength="7" minRequiredAlphabeticCharacters="3" minRequiredAlphabeticCaseChanges="1" minRequiredNumericCharacters="1" minRequiredNonAlphanumericCharacters="0" passwordWordsPolicy="true" passwordHistoryPolicy="13" enablePasswordRetrieval="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" minRequiredUserNameLength="6" minRequiredUserNameAlphabeticCharacters="1" minRequiredUserNameNumericCharacters="0" userNameEnableNonAlphanumeric="true" userNameWordsPolicy="true" />
</providers>
</membership>
<customErrors mode="On" />
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Linq" />
<add namespace="System.Collections.Generic" />
</namespaces>
</pages>
<trace enabled="false" mostRecent="true" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="true" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="Ewdev.Security.GatekeeperFormsAuthenticationModule" preCondition="" />
</modules>
<handlers>
<remove name="MvcHttpHandler" />
<add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler" />
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
</system.webServer>
Это все работает на моем рабочем столе Windows 7 x64 с VS2010, .NET 4 и Mvc2.У меня ASP.NET4 установлен / зарегистрирован в IIS.Я подозреваю, что вы, вероятно, захотите узнать, что находится в модуле, но источник довольно длинный, поэтому я не знаю, какой бит будет иметь значение.Он построен на той же спецификации API, что и встроенная, но кроме перенаправления на страницу входа в систему, когда нет необходимости вносить другие изменения в URL-адрес запроса, и появляется ошибка при попытке отобразить домашнюю страницу, которая открыта для всех.Я читал, что это может быть что-то делать с не-ASPX ресурсов, таких как сценарии, CSS, файлы изображений, поскольку модули настроены для применения ко всем типам ресурсов?Другие идеи были похожи на то, что мой модуль вызывался после модуля маршрутизации Url, но я не уверен в этом, и в-третьих, что Global.asax может не вызываться?Я уже третий день рву волосы на этом, в основном потому, что я оценил 1 час, чтобы установить сайт на IIS ... Дох!
Буду признателен за любую помощь, которую я смогу получить, и очень рад переписать мой модульесли бы я только мог понять, какой бит IIS не нравится.Кассини это нравится: - (