Пользовательский QueryStringModule (httpModules) не учитывается в WebMatrix - PullRequest
0 голосов
/ 22 августа 2011

Я создал QueryStringModule на основе найденного здесь: https://stackoverflow.com/questions/6157150/mvc3-encrypted-querystring-parameters

Он прекрасно работает, когда я запускаю свое веб-приложение с отладчиком VS2010, но он не учитывается при доступе к моему веб-приложениючерез WebMatrix.

Вот как я могу зарегистрировать его в разделе system.web моего файла Web.config:

<httpModules>
  <add name="QueryStringModule" type="MyProject.Lib.HttpModules.QueryStringModule" />
</httpModules>

Любая подсказка, почему WebMatrix не будет использовать мой QueryStringModule?Мой веб-сайт - это проект ASP.Net MVC 3, использующий EF 4.1.

1 Ответ

2 голосов
/ 24 августа 2011

WebMatrix использует сервер IIS Express 7.5 и по умолчанию работает в «интегрированном» режиме конвейера (в настройках сайта WebMatrix вы можете увидеть «.NET 4 (Integrated)»). У вас есть следующие два варианта

Вариант-1: Сохраните ваш файл web.config как есть (т.е. регистрация модуля http в классическом режиме) и измените режим конвейера на Classic

  1. Откройте свой сайт в WebMatrix
  2. Навигация к настройкам сайта в webMatrix
  3. Измените версию .Net Framework, как показано ниже

enter image description here

Вариант-2: Не изменяйте режим конвейера сайта, но обновите файл web.config, чтобы зарегистрировать модуль HTTP в интегрированном режиме (ваш web.config должен выглядеть примерно так, как показано ниже). Взгляните на http://msdn.microsoft.com/en-us/library/ms227673.aspx#Y873, чтобы узнать больше о регистрации модуля http.

<configuration>
  <system.webServer>
    <modules>
       <add name="QueryStringModule" type="MyProject.Lib.HttpModules.QueryStringModule" />
    </modules>
  </system.webServer>
</configuration>
...