繁体   English   中英

ASP.NET MVC; 编译为64位的x64与anyCPU,有区别吗?

[英]ASP.NET MVC; compiling to x64 versus anyCPU for 64bit, difference?

我正在运行Visual Studio 2017,ASP.NET 4.7和MVC 5,以针对IIS Express和Azure App Services开发。

目前是32位。 我想将其转换为64位

我看到2个选项:

  1. 通过“活动”选项卡在解决方案的配置中明确设置x64

  2. 通过“活动”选项卡在解决方案的配置中明确设置AnyCPU

我已将IIS Express设置为64位,并将Azure App Service实例设置为64位。

我感觉2)是最佳实践,因为将提高Web服务器目标位数。

如果有所不同,可能会使用一些第三方32位dll。

谢谢。

  1. 如果您的项目仅使用托管DLL或Nuget包,则任何CPU都可以。 AnyCPU意味着在运行时它将根据您的CPU位数决定64位还是32位。

  2. 现在,如果您明确希望告诉您的程序应以32位模式还是64位模式运行,则必须选择该特定配置文件。

    例如:我使用的是非托管DLL,它是专门为64bit编写的,因此AnyCPU将产生问题,因为它不是在编译时决定的。 同样适用于32bit。 在这里,我们明确尝试告诉它必须在特定的位配置文件中运行。

  3. 在IIS级别,此配置也可用,例如您可以将32位dll设置为在应用程序池级别运行。

评论后更新。

  1. 如果您为App Service寻找32位实例,则只有很少的实例。 免费和共享。 大多数都是64位的。

注意:1.在现实生活中,我也遇到过这样的问题,其中azure应用程序依赖于32位,而我们的层是64位。 2.如果继续前进,然后选择VM,则将获得所有选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM