我们有一个MVC应用程序,它依赖于许多第三方产品(例如Crystal、Topaz)。Topaz签名设备只有32位.dlls可用。因此,我假设我需要在32位应用程序池中构建和部署IIS7上的应用程序。
如果这个假设是正确的,那么我是否需要在VS2008编译器设置为"x86“的情况下构建MVC应用程序?
另外,所有引用的程序集也需要是32位的吗?如果是这样,我如何将32位的MVC文件放到x64 Server2008上?
最后,我如何使inetpub/ directories对x86友好,或者这是由于其他原因而发生的吗?
发布于 2010-01-29 00:35:22
如果这个假设是正确的,那么我是否需要构建VS2008编译器设置为"x86“的MVC应用程序(现在我使用"Any CPU"?
您可以将其设置为任何CPU,它将在32位或64位上运行,这取决于您的应用程序池设置,并且只要您的其他依赖dll也使用"any CPU“进行了编译。
另外,是否所有引用的程序集都需要也是32位的?如果是这样,我如何将32位的MVC文件放到x64 Server2008上?
如果使用非托管代码(或引用程序集),则需要获取该assembly.If的特定32位和64位版本。如果在应用程序池中启用了32位应用程序,则这些应用程序将在WoW64模式下运行。
另一个参考:http://blogs.msdn.com/gauravseth/archive/2006/03/07/545104.aspx
如果您有x64版本,它们将在本地以64位运行
托帕兹签名设备只有32位.dlls可用。因此,我假设我需要在32位应用程序池中构建和部署IIS7上的应用程序。
你是怎么验证它的?你使用Corflags.exe了吗?你可以在here上了解更多。不管您的PE标头(PE32或PE32+)是否设置为0,如果设置为1,则可以在64位应用程序pool.Even上运行,如果未签名,则可以将其设置为0(但可能不值得冒险)并在64位应用程序池上运行
发布于 2010-01-29 00:18:03
如果您的MVC应用程序以32位运行,这有关系吗?或者,您是否有一个令人信服的理由尝试使用64位?
如果你能接受32位,那就把你所有的程序集编译成x86。当您在x64服务器2008上配置IIS时,请确保将应用程序池-set“启用32位应用程序”上的“高级设置”更新为true。
帕特里克
发布于 2010-01-29 00:21:50
如果这个假设是正确的,那么我是否需要构建VS2008编译器设置为"x86“的MVC应用程序(现在我使用"Any CPU"?
是的,完全正确。
另外,是否所有引用的程序集都需要也是32位的?如果是这样,我如何将32位的MVC文件放到x64 Server2008上?
不需要,如果这些程序集是作为任何处理器构建的,那么只要您的入门程序集是32位的,.Net框架就会将其解析为32位。
最后,我如何使inetpub/目录对x86友好,或者这是由于其他原因而神奇地发生的吗?
它就是神奇地发生了。
https://stackoverflow.com/questions/2155864
复制相似问题