我在这里有一个难题。.NET 2005 - 通过IIS进行测试以x86身份运行。单元测试运行x64
我的开发箱是64位,Windows 7。 我所有的项目都编译为“任何CPU”。 该项目引用64位版本的第三方软件
当我通过我的单元测试,没有使用任何网站引用它运作,因为它应该。我可以说它是作为一个64位进程运行的。我可以打电话给我的命令,他们工作得很好。
但是,每当我运行一个调用Web服务调用到我自己的PC的测试时,该代码就会告诉我它正在以32位/ x86的方式运行。 Web服务与单元测试完全相同,但它测试Web服务/ SOAP代理(实际上它调用相同的代码,除了通过Web服务)。
我一直在打我的头,试图弄清楚这一点。我检查过所有第三方DLL,并确保它们被编译为32/64位,并通过快速单元测试进行验证。我不确定为什么通过IIS将它变成32位。
似乎任何通过IIS运行代码为32位与64位。
有什么想法?
我不确定我完全理解了这个问题。你是说当你与本地IIS托管的Web服务通信时,你的进程运行在32位?或者你是否说IIS中托管的服务正在告诉你他们正在运行并且32位? – mockobject 2012-03-30 18:17:16
@mockobject -yes。如果我调用Web服务,我的代码运行为32位。如果我直接调用它(相同的服务起点或任何地方),它将以64位运行。 – 2012-03-30 18:23:59
作为单元测试的一部分,您不应该调用Web服务。嘲笑Web服务调用。 – 2012-03-30 18:29:05