我正在运行64位Windows 7,Studio 2012,并且不完全了解以下行为:
将站点部署到IIS时,我必须在应用程序池中“启用32位应用程序”才能使用它。 也许这是在Visual Studio开发服务器中自动完成的。
Visual Studio开发服务器是否只是在幕后32位运行我的网站,还是有更深层次的工作?
答案 0 :(得分:4)
是的,您的网络服务器将您的网站作为32位应用运行。
答案 1 :(得分:3)
在IIS中启用“32位应用程序”启动w3wp进程的x86版本。
AnyCPU是一个方便的功能,由.NET提供,决定应用程序启动选择哪种处理器架构。这是可能的,因为.NET应用程序不能编译为x86 / x64机器代码,而是编译为Intermediate Language。启动应用程序时,它会在后台编译为x64或x86机器代码。
但是,非.NET应用程序通常直接编译为目标系统的机器代码。此外,COM服务器必须在x86和x64的不同注册表分支中注册。
由于您只有32位兼容服务器(DLL),这会导致您所描述的情况:
BadImageFormatException
。