Visual Studio Web Developer 2010 Express 和 64 位
Posted
技术标签:
【中文标题】Visual Studio Web Developer 2010 Express 和 64 位【英文标题】:Visual Studio Web Developer 2010 Express and 64-bit 【发布时间】:2011-11-02 15:57:27 【问题描述】:我在 Visual web developer Express 2010 下有一个 ASP.NET MVC 3 .NET 应用程序。
默认情况下,它构建为“任何 CPU”。经过测试,Environment.Is64BitProcess 总是返回 false(我有 Windows 7 64 位)。我为 x86 和 x64 尝试了 Stack Overflow 问题 Change target CPU settings in Visual Studio 2010 Express,但它总是导致错误,类似于:
Cannot load type 'MyApp.UI.MvcApplication'.
并指向global.asax
文件,只有一行:
<%@ Application Codebehind="Global.asax.cs" Inherits="MyApp.UI.MvcApplication" Language="C#" %>
我该如何解决?
【问题讨论】:
【参考方案1】:这完全取决于托管您网站的进程。
如果您使用 Cassini 或 IIS Express,它将始终是 32 位应用程序,因为这些进程始终是 32 位的。
如果您使用的是 IIS,那么这取决于您的 AppPool 设置为什么。
CPU 设置影响它可以在什么下运行,而不是它应该。
任何 CPU 意味着程序集能够以 64 位或 32 位运行。 x86 意味着它只能在 32 位进程中运行。 x64 意味着它只能在 64 位进程中运行。当您为不同的平台有不同的程序集时,这些设置更为典型,比如它们是否为每个平台调用了非常具体的平台。或者,如果您有一个独立的可执行文件,您希望始终以 32 位运行,即使在 64 位环境中也是如此。通常,对于 ASP.NET,您希望您的程序集是任何 CPU,并使用 IIS 的配置来决定您是要使用 32 位还是 64 位 AppPool。
对于 IIS 7+,您可以查看应用程序池的高级设置。将Enabled 32-bit applications
设置为True
用于32 位,或False
用于64 位。
如果您的网站在 IIS Express 或 Cassini 上运行,那么您别无选择。
【讨论】:
我明白了。它清除了很多。那么,如果我想在 IIS express 下运行使用 Microsoft.ACE.OLEDB.12.0 的应用程序,我将无法在具有 64 位版本 Office 的服务器上执行此操作? @trakos 你可以,你只需要安装 32 位组件,可以下载 here。您不必为了获得这些数据访问提供程序而进行全面的 Office 安装。 是的,但是服务器上还需要完整的office安装,并且32位的数据访问提供商抱怨它不会安装,因为64位的office。我相信我必须放弃使用oledb,重写应用程序以使用office interop,然后继续使用32bit? @trakos 或使用 IIS(内置在服务器操作系统中的那个),而不是 IIS Express。可以运行 64 位。 是的,但是因为它作为服务运行,所以它不能使用 COM 互操作,这也是必需的(在 VB.NET 代码中运行程序) - 我被困在一个艰难的地方.完全切换到 COM 互操作似乎是最好的选择,即使更难阅读整个工作簿。再次非常感谢您。以上是关于Visual Studio Web Developer 2010 Express 和 64 位的主要内容,如果未能解决你的问题,请参考以下文章
关于Visual studio web版 mvc4的新人问题
Visual Studio 2013和ASP.NET Web配置工具
web项目 在visual studio 输出窗口显示调试信息