IIS7上部署Asp.Net4.0时UrlRouting的若干问题

简介: 今天把公司的一个小web项目从Asp.Net3.5升级到Asp.Net4.0,结果在UrlRouting上遇到一系列很纠结的问题.(注:Url路由是Asp.Net4.0新增的一项功能,初次接触的朋友请移步这里Asp.

今天把公司的一个小web项目从Asp.Net3.5升级到Asp.Net4.0,结果在UrlRouting上遇到一系列很纠结的问题.(注:Url路由是Asp.Net4.0新增的一项功能,初次接触的朋友请移步这里Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由

 

vs2010开发环境中一切运行正常,结果部署到IIS7上以后,首先遇到下面这个问题:

img_9efaf5153acb4a85b953cf4adfa1245f.jpg

我确定服务器上的asp.net4.0 已经启用了(如下图),对应的网站应用程序池也切换到了4.0,但还是这样!

img_43360e68f7ae18768d2b7cc286950b41.jpg

到msdn论坛上发现也有人遇到类似问题,解决办法:

先检测机器上是否安装了4.0正式版以前的beta或rc版,如下图

img_63ceb8e43086f577d9ee8e7a2827bf54.jpg

.net framework4 的正式版本号为4.0.30319,如果以前安装过旧版本的4.0框架(如上图中的v4.0.30128),请先在命令行下输入 :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -i

重新将.net4正式版注册到IIS中

注:如果服务器为64位系统,.net会同步安装64位的 framework,如果是32位的系统则没有Framework64这个目录,这个运行完以后,检查IIS中应用程序池的版本号是否为正式版本号

img_73766b422d17634419c3571dea94ac78.jpg

 

这样处理完了以后,网站已经能跑起来了,但是又遇到了第二个问题:

img_9506314224a12e8a9ba7681efcbcc2fa.jpg

如上图,因为公司的项目应用了一些以前的第三方组件,应用程序池无法以Integrated集成模式运行(不兼容),所以只能选Classic经典模式,实践后发现经典模式下url路由功能无法使用:

img_feb2237d00cece835772ad66d458ab70.jpg 

又百度一圈后,找到了解决办法:在网站的功能(Feature)视图下,找到Handler Mappings(Handler映射)并双击

img_e8ac55b34c9bb0a68b67d91a6d55db09.jpg

添加一个Wildcard Script Map,如下图

img_f0f7b1cc22ee6653c2ed1f46a42640c1.jpg

即:将所有后缀文件的请求,全部交由Framework64\v4.0.30319\aspnet_isapi.dll来处理

 

ok,asp.net4.0的路由功能总算在经典模式下运行正常了(注:如果是集成模式,是没有该问题的)

目录
相关文章
|
7月前
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
213 73
|
8月前
|
人工智能
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
|
8月前
|
人工智能 自动驾驶 机器人
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
|
11月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
172 5
|
12月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
637 1
|
12月前
|
存储 开发框架 .NET
Windows IIS中asp的global.asa全局配置文件使用说明
Windows IIS中asp的global.asa全局配置文件使用说明
223 1
|
12月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
132 1
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
303 2
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
220 0
|
12月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
216 0