ASP.Net在64位环境开发部署常见问题
越来越多的开发团队开始使用64位操作系统作为开发环境,也计划将应用部署在安装有64位操作系统的服务器上。对于ASP.Net开发者来说,使用64位环境开发部署需要注意以下几个问题,可在项目过程中节省不少时间。
1.ASP.Net在64位环境开发部署的常见故障
很多开发者在使用64位操作系统时,在ASP.Net应用中使用了指定64位版本程序库。例如一些专门的数据库驱动、设备驱动,但依然出现以下错误提示信息:
未能加载文件或程序集“……”或它的某一个依赖项,试图加载格式不正确的程序。
造成这种故障的原因是,大部分ASP.Net编译器和容器并没有默认设置为64位,而是以32位兼容模式运行。此时,如果将程序库更换为32位,则系统运行正常。若打算坚持使用64位程序集,可依据下文所述方法进行设置。
2.Visual Studio自带的IISExpress设置在64位操作系统中,Visual Studio自带的IIS Express是32位的。如果需要Visual Studio使用IIS Express调试使用64位程序集的ASP.Net应用,应使用64位版本的IIS Express。设置方法如下:
(1)关闭正在运行的IIS Express实例;
(2)单击主菜单上的“工具”-“选项”命令,打开选项对话框;
(3)在选项对话框目录树中“项目和解决方案”-“Web项目”标签,勾选“对网站和项目使用IIS Express的64位版本”条目。
在Visual Studio发布ASP.Net项目时,如果设置了在发布期间预编译功能,Visual Studio将调用ASP.Net编译器对项目进行编译。
该编译器默认选择的是32位编译器,而Visual Studio未提供任何配置管理界面。更换64位编译器的方法为:
(1)找到当前发布Web的配置文件名称,本例中的文件名称为PublishConfig;
(2)在解决方案资源管理器的Properies目录下,找到对应的配置文件,打开进行编辑;
(3)在该配置文件中添加下列语句:
[Microsoft .Net Framework路径]\ Framework64\[版本号]
例如:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
注意:Visual Studio 2010以前的版本配置方法有所不同,暂时未找到对应解决方案,可选择不进行预编译。
4.64位Windows Server上的IIS设置IIS可以针对具体的ASP.Net应用设置是否以64位环境运行,具体的操作方法如下:
(1)部署Web站点后,打开Internet 信息服务(IIS)管理器;
(2)在目录中选择应用程序池,选择目标站点的应用配置,通过右键菜单打开高级设置;
(3)将启用32位应用程序选项设置为False,应用将以64位环境运行。
关于此问题,我查阅过一些文档,同时也进行了实验。个人观点如下:
(1)普通的ASP.Net项目无需进行平台的设置,平台设置为x86和x64均不影响项目的编译和发布,因此使用默认的Any CPU平台即可。
(2)对于使用了有环境限制程序集的项目,如系统驱动、数据库驱动,最好是配置对应平台。在发布时环境异常,可以获取更多有效的信息,节省调试时间。
后记诸多开发者都对微软的文档不满,软件工程师与律师的职业属性不同,每日不可能有诸多时间消耗在翻阅类似于法典的MSDN文档中。而我们希望的是能够针对可能出现问题的频率来组织开发资料,这样开发者将少走很多弯路。
上一篇: MySQL的timestamp类型自动更新问题解决方案
下一篇: 最简单的Web服务器事例分析
推荐阅读
-
ASP.NET Core优雅的在开发环境保存机密(User Secrets)
-
ASP.Net在64位环境开发部署常见问题
-
如何快速地在windows上部署Python开发环境,包括各种常用的第三方库?
-
如何快速地在windows上部署Python开发环境,包括各种常用的第三方库?
-
seam一:在tomcat部署hotelbooking并配置Eclipse开发环境 SeamTomcatEclipseJBossHibernate
-
seam一:在tomcat部署hotelbooking并配置Eclipse开发环境 SeamTomcatEclipseJBossHibernate
-
分享ASP.NET Core在开发环境中保存机密(User Secrets)的实例
-
在Mac OSX不区分大小写的环境下开发,会对以后在CentOS部署产生什么影响?
-
在Mac OSX不区分大小写的环境下开发,会对以后在CentOS部署产生什么影响?
-
wp8开发-可以在APACHE服务器上 部署asp.net的webservice还有WCF吗???提供方法谢谢!!!