Назад | Перейти на главную страницу

любое правило перезаписи URL вызывает внутреннюю ошибку сервера на iis7

У меня есть iis7 на сервере Windows 2008 и установлен модуль 2 перезаписи URL-адреса iis.

Любое правило перезаписи URL (в моем случае простое правило канонического доменного имени) заставляет веб-приложение возвращать ошибку 500.

В моем случае у меня есть 4 домена, сопоставленных с одним и тем же веб-приложением, и я хочу перенаправить 3 альтернативных домена на основной домен, после установки правила любой запрос к веб-приложению для этих доменов возвращает ошибку, один домен веб-приложения на которое не повлияло правило, остается в порядке.

Я восстановил модуль перезаписи URL-адресов iis, но проблема не исчезла.

Если я отключу пользовательские ошибки, я вижу, что проблема в моем веб-приложении, однако, если у меня нет правил перезаписи / перенаправления, я не получаю никаких ошибок. Вероятно, перезапись связана с чем-то в разработке ..

Stacktrace выглядит следующим образом:

[NullReferenceException: Object reference not set to an instance of an object.]
   Glimpse.Core.Extensions.DataStoreExtensions.Get(IDataStore store, String key) +35
   Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context) +50
   Castle.DynamicProxy.AbstractInvocation.Proceed() +595
   Castle.Proxies.IDependencyResolverProxy.GetService(Type serviceType) +177
   System.Web.Mvc.DependencyResolverExtensions.GetService(IDependencyResolver resolver) +61
   xxxxx.NHibernateSessionPerRequestModule.<Init>b__1(Object param0, EventArgs param1) +40
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

Разве URL-адрес перезаписи / перенаправления не должен завершать обработку запроса и отправлять ответ ??

Вы создаете правила перенаправления в графическом интерфейсе или редактируете файл web.config напрямую? Возможно, в вашем web.config где-то есть ошибка. Попробуйте отключить пользовательские ошибки, чтобы вы могли видеть подробное сообщение об ошибке, это должно помочь вам отследить проблему.

Найдите эту строку в своем web.config и раскомментируйте ее;

<customErrors mode="off"/>

Если вы вносите изменения в графический интерфейс, попробуйте опубликовать снимок экрана с текущими правилами, кто-то может обнаружить проблему.

Я не уверен в вашей ошибке, но поскольку никто другой не пробовал ответить, и у вас есть проблема, которую необходимо решить, я предлагаю другой способ достижения вашей цели.

Оставьте свое основное приложение отвечающим только на то имя, которое вы хотите, чтобы люди использовали. Добавьте второе веб-приложение, которое отвечает на 3 имени, которые вы хотите перенаправить. Настройте этот сайт для перенаправления трафика в основной домен.