我不断遇到“网站项目”与“Web 应用程序项目”之间的各种细微差别 - 这是我的最新情况:
我继承了包含多个类库项目(DAL.dll、Biz.dll 等)的 Visual Studio 2005 解决方案,但这全部由网站项目“前置”而不是 Web 应用程序项目。
虽然网络应用项目提供了平台目标下拉列表(任何CPU、x86、x64),但可怜的网站项目似乎没有提供任何类似的东西。 有没有办法确保网站在 64 位 IIS 计算机上托管时以 x86 运行?
..我问这个问题的大局是这样的:
该网站在 64 位计算机(Win Server 2003)上运行,并且[我刚刚了解到]无法加载 32 位 COM 对象,我相信该对象已使用运行时可调用包装器进行了包装。因为它无法加载这一部分,所以设置了一个 web.config 设置,通过绕过这个 32 位 dll 的加载来避免运行时加载错误(但是当站点在 64 位上运行时,COM dll 的所有功能都会“丢失”)位机)。
因此,总而言之,我认为 64 位计算机上的网站必须作为 64 位应用程序在 IIS 中运行,并且如果我可以让该网站以 32 位运行,那么它可以 加载 COM dll,从而执行应用程序的功能。
注意:我一直在这里进行研究,以便在进入实际的开发环境时快速掌握,因此我的大部分问题都是基于将我即将面临的[预期]问题的各个部分拼凑在一起。谢谢。
最佳答案
据我所知,在服务器 03 下,您不能在 IIS 中同时拥有 64 位和 32 位应用程序池。
您可以强制它在 32 位模式下运行,但这会影响所有应用程序池,从而影响所有网站/应用程序。这听起来应该可以解决您的 COM 问题,但它可能会影响该机器上运行的任何其他内容,因此请注意这一点。公平地说,从 64 位切换到 32 位产生影响的机会比反之亦然要小。唯一想到的必须在 64 位应用程序池中运行的常见问题是 Exchange 07。话虽如此,我是一名开发人员,而不是服务器管理员。
如果您确定,请查看 here
顺便说一句,服务器 08 可以同时运行 64 位和 32 位应用程序池。
关于visual-studio-2005 - 如何为 ASP.NET "web site"项目设置平台目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883124/