C# 在64位操作系统上的32位应用程序池中运行我的网站

C# 在64位操作系统上的32位应用程序池中运行我的网站,c#,asp.net,web,32bit-64bit,C#,Asp.net,Web,32bit 64bit,以下是我的设置: 开发人员: -Windows Server 2008 64位 -Visual Studio 2008 -具有3个类库和1个web应用程序的解决方案 暂存Web服务器: -Windows Server 2008 R2 64位 -IIS7.5启用32位应用程序的集成应用程序池 在VisualStudio中,我将所有4个项目都设置为编译为“任意CPU”,但当我在web服务器上使用32位应用程序池运行此web应用程序时,它会超时并崩溃。当我以64位模式运行应用程序池时,它工作正常。生产

以下是我的设置:

开发人员: -Windows Server 2008 64位 -Visual Studio 2008 -具有3个类库和1个web应用程序的解决方案

暂存Web服务器: -Windows Server 2008 R2 64位 -IIS7.5启用32位应用程序的集成应用程序池

在VisualStudio中,我将所有4个项目都设置为编译为“任意CPU”,但当我在web服务器上使用32位应用程序池运行此web应用程序时,它会超时并崩溃。当我以64位模式运行应用程序池时,它工作正常。生产web服务器要求我在64位操作系统中运行32位应用程序池,这就是为什么我在临时web服务器上以这种方式配置此应用程序池

(我考虑过在ServerFault上发布,但服务器部分似乎工作正常。我的代码似乎不想在32位应用程序池中运行,这就是我在这里发布的原因。)

编辑:事件视图错误
我猜64位可以同时运行64位和32位代码,但32位只能运行32位代码


如果要在32位启用框上运行64位编译器编译的代码,则需要使用32位编译器编译代码。

我在处理的应用程序上遇到类似错误。。。如果我以x86为目标构建程序集,那么效果很好。我只在针对“任何CPU”时出现问题

对于每个项目,请尝试以下操作:

1) 在项目上单击鼠标右键,然后选择“属性”

2) 选择左侧的Build选项卡

3) 选择x86作为平台目标


4) 重新生成我认为该错误表示试图将64位dll加载到32位进程中。您的项目可能都设置为“任意CPU”(或x86),但我敢打赌您引用的是64位dll。您是否使用包含64位dll的任何第三方库


通过修改.csproj文件并使用一点msbuild脚本,可以根据当前计算机的环境动态交换32位/64位引用。如果您对如何做到这一点感兴趣,请告诉我,我将发布后续信息。

您的帖子有点让人困惑

有CPU-X64工作吗

任何CPU-X64+32位兼容都不工作

如果是这样的话,那么听起来他们所使用的库之间存在差异。也许运行时解释为x64,但被提供给x86库。重要的是他们要匹配


您应该为x64和x86(或仅为x86)创建新配置,并根据需要进行部署。根据我的经验,使用“任何CPU”都会导致这条糟糕而丑陋的道路。

不幸的是,我不认为这里的人有任何办法能够弄明白这一点。我使用的两个DLL来自一个下载的ZIP文件,当我转到这些文件的属性时,有一个框说它们是从internet下载的,我必须“解锁”它们。似乎64位的应用程序池并不尊重这一点,但当我降到32位时,它就做到了。一旦我“解锁”了DLL,一切都开始正常工作。

在我的情况下,问题是由客户端bin文件夹中的第三方DLL版本错误引起的

我的电脑上安装了10.3和11.1版的基础设施。我的项目参考了11.1版,但在我客户的bin文件夹中,只有Infrastics 10.3


因为我的计算机上安装了这两个版本,所以在构建应用程序时没有任何错误。原因是我可以确定基础设施的好版本在哪里;在GAC。但是对于没有安装Infragistics的客户,我收到了与本文问题相同的错误。

相同的(通用)异常代码,但对于我来说,如果我尝试使用域管理员用户帐户进行身份验证(到我在IIS7上的32位.net 2应用,在2k8R2上)。如果我创建了一个本地用户,并将其添加到Builtin\Administrators组,然后使用该帐户登录,则应用程序运行良好。即使域管理员用户自动成为builtin\administrators的成员。希望这种思路和不依赖域管理员帐户能帮助其他人。

你能从EventViewer或附加VS获得堆栈跟踪吗?我也看到过这种情况。通常,当我有一个具有32位程序集的第三方资源时,就会发生这种情况。不知道为什么-但在编写TFS2008API时经常发生这种情况。我必须明确地以x86为目标,否则它会给我随机(和奇怪)的失败。
Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bcd2b
Faulting module name: KERNELBASE.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdbdf
Exception code: 0xe053534f
Fault offset: 0x0000b727
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report Id: %13