• ASP.Net在64位环境开发部署常见问题


    越来越多的开发团队開始使用64位操作系统作为开发环境,也计划将应用部署在安装有64位操作系统的server上。对于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位版本号”条目。


    3.Visual Studio公布Web项目时的设置

    在Visual Studio公布ASP.Net项目时,假设设置了在公布期间预编译功能。Visual Studio将调用ASP.Net编译器对项目进行编译。

     

    该编译器默认选择的是32位编译器,而Visual Studio未提供不论什么配置管理界面。更换64位编译器的方法为:

    (1)找到当前公布Web的配置文件名。本例中的文件名为PublishConfig;

     

    (2)在解决方式资源管理器的Properies文件夹下,找到相应的配置文件。打开进行编辑;

     

    (3)在该配置文件里加入下列语句:

    <AspnetCompilerPath>[Microsoft .Net Framework路径] Framework64[版本号号]</AspnetCompilerPath>

    比如:

    <AspnetCompilerPath>C:WindowsMicrosoft.NETFramework64v4.0.30319</AspnetCompilerPath>

    注意:Visual Studio 2010曾经的版本号配置方法有所不同。临时未找到相应解决方式,可选择不进行预编译。

    4.64位Windows Server上的IIS设置

    IIS能够针对详细的ASP.Net应用设置是否以64位环境执行,详细的操作方法例如以下:

    (1)部署Web网站后,打开Internet 信息服务(IIS)管理器。

    (2)在文件夹中选择应用程序池。选择目标网站的应用配置,通过右键菜单打开高级设置;

    (3)将启用32位应用程序选项设置为False。应用将以64位环境执行。


    5.编译器是否须要在解决方式配置中设置x64平台

    关于此问题,我查阅过一些文档,同一时候也进行了实验。个人观点例如以下:

    (1)普通的ASP.Net项目无需进行平台的设置,平台设置为x86和x64均不影响项目的编译和公布,因此使用默认的Any CPU平台就可以。

    (2)对于使用了有环境限制程序集的项目。如系统驱动、数据库驱动,最好是配置相应平台。

    在公布时环境异常,能够获取很多其它有效的信息。节省调试时间。

    后记

    诸多开发人员都对微软的文档不满。软件project师与律师的职业属性不同,每日不可能有诸多时间消耗在翻阅相似于法典的MSDN文档中。

    而我们希望的是能够针对可能出现故障的频率来组织开发资料,这样开发人员将少走非常多弯路。

  • 相关阅读:
    cocos2d-x笔记5: 通过jni实现C++调用Java
    cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。
    C++ 11 笔记 (六) : 随机数
    C++ 11 笔记 (五) : std::thread
    C++ 11 笔记 (四) : std::bind
    C++ 11 笔记 (三) : auto
    C++ 11 笔记 (二) : for循环
    要做的题目
    【C补充】结构体的内存分配,匈牙利命名法
    【C补充】文件操作
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10778156.html
Copyright © 2020-2023  润新知