zoukankan      html  css  js  c++  java
  • 在IIS 10中注册自定义的IHttpModule

    环境:Visual Studio 2015, IIS Express 10, ASP.NET 4.5

    演示代码:http://files.cnblogs.com/files/joe-yang/RewriteModule.zip

    最近要重构旧项目的代码,其中用到了URL Rewrite。 由于之前没有研究过URL Rewrite,今天在研究ASP.NET2.0时代的URL Rewrite时, 在网上找了一篇感觉讲的比较全的[文章](https://www.simple-talk.com/dotnet/asp.net/a-complete-url-rewriting-solution-for-asp.net-2.0/)。下载了演示代码,发现是用visual studio 2008写的。用我本地的Visual Studio 2015打开并把项目升级后,F5运行,报了2个错误。

    第一个是: “HTTP Error 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。”, 具体如下:

    由于在ASP.NET 2.0时代,注册HttpModule是在system.web节点下的:

    <system.web>
        
        <httpModules>
          <add name="RewriteModule" type="RewriteModule.RewriteModule, RewriteModule"/>
        </httpModules>
    
       <!-- ......-->
    <system.web>

    根据错误提示, 把注册HttpModule迁移到system.webServer下面:

    <system.webServer>
      <modules>
        <add name="RewriteModule" type="RewriteModule.RewriteModule, RewriteModule"/>
      </modules>
    </system.webServer>

    接着,F5运行测试,出现第二个错误:

    在根据提示,在添加模块之前,先添加一行移除代码:

    <system.webServer>
      <modules>
        <remove name="RewriteModule" />
        <add name="RewriteModule" type="RewriteModule.RewriteModule, RewriteModule"/>
      </modules>
    </system.webServer>

    这样,在visual studio 2015中运行就没有问题了。

    但是...,发现没有运行加载HttpModule模块. 在网上找了半天,还是没有找到解决方案. 后来发现源头还是因为把项目从visual studio 2008升级visual studio 2015的缘故.因为原来demo代码的.net framework是2.0的,升级之后项目的.net framework还是2.0。

    但是,visual studio 2015开发是运行在IIS Express 10下面的,这也是为什么要把注册模块移到system.webServer节点下的缘故。把项目的.net framework改成最新的4.6。F5运行,httpmodule加载成功了。

    注意:调试的时候,把Visual Studio 2015设置为Debug模式。否则会有警告窗口提示你。

    参考: https://msdn.microsoft.com/en-us/library/ms227673.aspx

    https://msdn.microsoft.com/en-us/library/system.web.ihttpmodule(v=vs.110).aspx

    https://msdn.microsoft.com/en-us/library/ms227673(v=vs.110).aspx

  • 相关阅读:
    [编程题] 微信红包
    MYSQL实现主从复制
    有关windows系统的EXE和DLL文件说法错误
    Http错误代码
    一步步优化JVM四:决定Java堆的大小以及内存占用
    一步步优化JVM三:GC优化基础
    一步步优化JVM二:JVM部署模型和JVM Runtime
    一步步优化JVM一:概述、方法及需求
    排查Java线上服务故障的方法和实例分析
    【转】Zookeeper-Watcher机制与异步调用原理
  • 原文地址:https://www.cnblogs.com/joe-yang/p/5014779.html
Copyright © 2011-2022 走看看