SoapException --->无法将类型为'x'的对象强制转换为'x'

时间:2014-02-05 13:33:58

标签: c# asp.net web-services .net-2.0

我一直在拔我的头发,此时我很秃头。

背景

Web服务在我的开发机器上运行没问题。部署到其他计算机会在调用时导致上述错误。

在代码中,我有一个对authorize.net API的Web引用。其中包含一个返回类型为“CreateCustomerProfileTransactionResponseType”的响应的方法。它需要的参数是MerchantAuthenticationType,CustomerProfileType和ValidationModeEnum类型。

一切都爆炸的地方是应该返回上述CreateCustomerProfileTransactionResponseType的方法。我收到错误:enter image description here

让我感到困惑的是,我的机器上没有这种情况(即使在模仿现场环境时 - 没有涉及Visual Studio),而是在任何其他机器上抛出。我的机器是Windows 7机器。我将故障部署到2个单独的Windows Server 2008 R2盒子。我尝试重新启动,关闭UAC等,但无济于事。我甚至把它所抱怨的参数转换为它所期望的对象类型,但错误仍然是相同的。编码明智,项目设置如下:

  • 应用程序调用Gateway webservice
  • Gateway webservice检查web.config条目以查找要加载的DLL及其位置
  • 网关本身使用LoadFrom
  • 加载.dll
  • 加载的dll运行我的方法(在这种情况下捕获付款),该方法使用对authorize.net API的Web引用
  • 响应将返回给调用它的应用程序

任何帮助都会非常感激,因为我已经用尽所有其他帮助途径。

谢谢,

2 个答案:

答案 0 :(得分:0)

检查包含类型' x'的装配版本。也许在GAC中安装了另一个版本。

同时检查:Unable to cast object of type MyObject to type MyObject

答案 1 :(得分:0)

我明白了。我在指定的位置和Web服务所在的bin目录中加载了(使用Reflection)的.dll。似乎是一个很大的不。从bin目录中删除.dll解决了我的问题。