我有一个用asp.net mvc2编写的web应用程序。目前在亚马逊ec2 32位媒体实例上运行。由于流量巨大,我们希望设置多个实例。但在此之前我们想在64位实例上运行应用程序。
任何推荐,概念证明,障碍等?
答案 0 :(得分:1)
有几件事要检查,但大多数情况下应该有效:
IntPtr
而不是Int32
。 我提到另外一件事,人们在切换到64位时提到的是他们认为有些错误,因为应用程序使用的内存比32位时更多。这通常是由“指针膨胀”引起的。地址现在是64位宽,与32位相反。
在其他一些更极端的情况下,由于x64和x86 .NET Framework具有不同的JIT,因此x64的优化方式不同,可能会损害性能而不是改进。当未修补时,这是.NET Framework 2.0的一个更大的问题。
答案 1 :(得分:1)
由于这将是64位窗口,您还将拥有64位IIS实例。如果您有任何使用不常用组件的第三方库(如Mono),您可能需要从源代码重新编译它们或进行一些更改。例如,当我们开始在64位IIS中托管时,我们遇到了这个问题:
System.BadImageFormatException on running ServiceStack examples.
如果你的应用程序都是.NET并且你没有使用使用本机代码的库,这对你来说可能不会有太多问题。
您还可以将IIS工作进程作为32位应用程序运行,因此即使遇到问题,它也应该非常即插即用:http://forums.asp.net/p/1156811/1901796.aspx
我最近将一堆32位IIS主机切换到64位,并没有太多问题。