【问题标题】:Custom QueryStringModule (httpModules) not taken into account with WebMatrixWebMatrix 未考虑自定义 QueryStringModule (httpModules)
【发布时间】:2011-08-22 14:45:56
【问题描述】:

我创建了一个基于此处找到的 QueryStringModule: https://stackoverflow.com/questions/6157150/mvc3-encrypted-querystring-parameters

当我使用 VS2010 调试器运行我的 web 应用程序时它工作正常,但当我通过 WebMatrix 访问我的 web 应用程序时没有考虑到它。

这是我在我的 Web.config 文件的 system.web 部分中注册它的方法:

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

关于为什么 WebMatrix 不使用我的 QueryStringModule 的任何线索?我的网站是一个使用 EF 4.1 的 ASP.Net MVC 3 项目。

【问题讨论】:

    标签: asp.net-mvc-3 query-string httpmodule webmatrix iis-express


    【解决方案1】:

    WebMatrix 使用 IIS Express 7.5 服务器,默认情况下它以“集成”管道模式运行(在 WebMatrix 站点设置中,您可以看到“.NET 4 (Integrated)”)。您有以下两种选择

    选项-1: 保持 web.config 文件不变(即经典模式 http 模块注册)并将管道模式更改为经典

    1. 在 WebMatrix 中打开您的网站
    2. 导航到 webMatrix 中的站点设置
    3. 如下图更改.Net Framework版本

    选项 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>
    

    【讨论】:

    • 在选项 2 中,您向我展示了一个与我发布的相同的 Web.config 文件部分。我的 Web.config 文件中有它,但它不起作用。我错过了什么吗?
    • 不一样...您的配置文件包含“httpModules”元素而不是“模块”,而且我假设您的配置文件包含“system.server”,而不是“system.webServer” "。
    • 太棒了!这是工作。我没有注意到您指出的差异。我的文件已经有 system.webServer 部分,但它的模块部分是空的。
    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 2020-02-08
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2011-11-10
    • 2023-02-06
    • 1970-01-01
    相关资源
    最近更新 更多