注册aspnet
装ASP.NET这事,注册说简单也简单,注册说折腾也真折腾。注册我第一次在Windows Server 2012上开IIS准备跑个ASP.NET应用,注册以为勾个选项就完事,注册结果页面直接给我甩了个500.19错误。注册折腾了一下午才发现,注册是注册ASP.NET的ISAPI扩展根本没允许。所以别急着写代码,注册先把运行环境理顺。注册 打开服务器管理器,注册添加角色和功能。注册走到“Web服务器(IIS)”那一步,注册别光勾个IIS就下一步。注册展开“应用程序开发”节点,注册你会看到ASP.NET 3.5、ASP.NET 4.8这些选项。注意了,ASP.NET 3.5和4.x是两套独立的注册机制,装哪个取决于你的应用跑在哪个CLR版本上。我见过有人两个都勾了,结果IIS里两个ISAPI筛选器打架,请求直接超时。不确定的话,先跑个 命令行注册才是真正靠谱的方式。以管理员身份打开CMD,切到框架目录。64位系统上,ASP.NET 4.x的注册工具在 注册完了别急着开浏览器。去IIS管理器里点开“ISAPI和CGI限制”,确认 应用程序池的配置也得看一眼。新建站点时,IIS会默认给你配一个 有个细节很多人忽略:32位和64位的选择。如果你的ASP.NET应用引用了32位的COM组件或者老版本的Oracle客户端,那必须把应用程序池的“启用32位应用程序”设为True。否则运行起来就报 最后说个实际案例。上周同事在Windows 10上装IIS跑一个老ASP.NET WebForms项目,页面能打开但所有按钮点击都没反应。查了半天,发现是 注册ASP.NET不是一锤子买卖。每次升级.NET Framework、重装IIS、或者迁移服务器,都得重新确认一遍注册状态。我习惯在部署脚本里加一行aspnet_regiis -lv看看当前注册了哪些版本。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\下面。执行aspnet_regiis -i,它会自动把当前版本的ASP.NET注册到IIS里。但这里有个坑:如果你先装了IIS再装.NET Framework,那必须手动跑这个命令,否则IIS根本不知道.NET的存在。反过来,先装.NET再装IIS,Windows会帮你自动注册,省事不少。ASP.NET v4.0.30319那条是不是“允许”状态。默认安装后有时候是“不允许”,请求过来直接403。我碰到过好几次,明明命令行显示注册成功,网页就是打不开,最后都是这里没放行。右键改成允许,重启IIS,世界就安静了。DefaultAppPool,它的.NET CLR版本可能是“无托管代码”。改成v4.0,管道模式用“集成”还是“经典”取决于你的应用。老项目用经典模式兼容性好,新项目直接上集成模式,性能和安全都更优。改完记得回收一下应用程序池,不然配置不生效。BadImageFormatException,错误信息还特别隐晦。我帮人排查过一次,折腾半天才发现是位数不匹配。web.config里system.web>节点下的httpModules配置跟IIS集成模式冲突。解决办法要么改经典模式,要么把配置迁移到system.webServer节点下。这种问题跟注册本身无关,但根源还是对ASP.NET和IIS的集成机制理解不够。aspnet_regiis -i,跑完再检查ISAPI限制,省得后面出幺蛾子。环境这东西,稳了后面才省心。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-