2011-11-02 239 views
0

我在Visual Web Developer Express 2010下有一个ASP.NET MVC 3 .NET应用程序。Visual Studio Web Developer 2010 Express和64位

默认情况下,它构建为'任何CPU'。测试时,Environment.Is64BitProcess总是返回false(我有Windows 7 64位)。我试图堆栈溢出问题Change target CPU settings in Visual Studio 2010 Express x86和x64的,但它总是导致一个错误,沿着线的东西:

Cannot load type 'MyApp.UI.MvcApplication'. 

,并指向global.asax文件只有一行:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApp.UI.MvcApplication" Language="C#" %> 

我该如何解决它?

回答

1

这一切都取决于哪个进程托管您的网站。

  • 如果您使用卡西尼或IIS Express中,它永远是一个32位的应用程序,因为这些进程总是32位。

  • 如果您使用IIS,那么它取决于您的AppPool设置为。

的CPU设置会影响它可以跑下,没有什么应该

  • 任何CPU都意味着程序集能够以64位或32位运行。
  • x86意味着它可以只有在32位进程中运行。
  • x64表示它cano 只有以64位进程运行。

当你为不同的平台有不同的程序集时,这些设置更为典型,比如说他们对每个平台都有非常具体的平台调用。或者,如果您有一个独立的可执行文件,即使在64位环境中,也希望始终运行32位。通常,对于ASP.NET,您希望程序集成为任何CPU,并使用IIS的配置来决定是要使用32位还是64位AppPool。

对于IIS 7+,您可以查看应用程序池的高级设置。设置为Enabled 32-bit applicationsTrue为32位,或为False为64位。

如果您的网站运行在IIS Express或Cassini上,那么您没有选择。

+0

我明白了。它清除了很多。所以,如果我想运行我在IIS express下使用Microsoft.ACE.OLEDB.12.0的应用程序,那么我将无法在具有64位版本Office的服务器上执行此操作。 – trakos

+0

@trakos你可以,你只需要安装32位组件,以及可以下载[这里](http://www.microsoft.com/download/en/details.aspx?id=13255)。您不必为获取这些数据访问提供程序而进行全面的Office安装。 – vcsjones

+0

是的,但服务器上也需要完整的办公室安装,而32位的数据访问提供商则抱怨说由于64位办公室而无法安装。我相信我不得不放弃使用oledb,重写应用程序来使用office interop,并保持与32位呢? – trakos

相关问题