环境: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

最新文章

  1. HTTPS----安全超文本传输协议
  2. Rest(表述性状态转移)
  3. 【Java学习笔记】&lt;集合框架&gt;TreeSet,Comparable,Comparator
  4. 6.7 Binder机制
  5. .Net程序员安卓学习之路2:访问网络API
  6. 使用Nodejs+mongodb开发地图瓦片服务器
  7. arcgis engine 开发之QI
  8. 纯css实现扁平化360卫士logo demo
  9. Codeforces 715B &amp; 716D Complete The Graph 【最短路】 (Codeforces Round #372 (Div. 2))
  10. 腾讯地图之Marker
  11. Norm 数据库操作竟然可以如此简单
  12. jquery ajax几种书写方式的总结
  13. 雷达无线电系列(一)几种常见的幅度分布函数(matlab)
  14. 爬虫-day02-抓取和分析
  15. common lisp 里的几个操作符(2)
  16. leetcode46
  17. GreenDao存储自定义类型对象解决方案(转)
  18. C#实现麦克风採集与播放
  19. Exchange Port
  20. Delphi格式化函数Format、FormatDateTime和FormatFloat详解

热门文章

  1. 场景报错Error&#160;-27492:&#160;&quot;HttpSendRequest&quot;&#160;failed,&#160;Windows&#160;error&#160;code=12029&#160;(cannot&#160;connect)&#160;and&#160;retry&#160;limit&#160;(0)&#160;exceeded&#160;for&#160;URL=&quot;&quot;
  2. 检索源码 删除无用Properties的小工具
  3. WEBGL学习【十三】鼠标点击立方体改变颜色的原理与实现
  4. 通过js 实现 向页面插入js代码并生效,和页面postMessage通讯
  5. Python3爬虫环境配置
  6. eclipse debug的时候提示debug Edit Source Lookup path
  7. HDU2188 选拔志愿者
  8. ie6下position:fixed定位问题
  9. Ajax接收json响应
  10. 如何打开WCF测试客户端