【问题标题】:SoapException ---> Unable to cast object of type 'x' to type 'x'SoapException ---> 无法将“x”类型的对象转换为“x”类型
【发布时间】:2014-02-05 13:33:57
【问题描述】:

我一直在拔头发,此时我已经秃顶了。

背景:

Web Service 在我的开发机器上运行没问题。部署到其他机器调用时会出现上述错误。

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

所有事情都发生在应该返回上述 CreateCustomerProfileTransactionResponseType 的方法上。我收到错误:

让我感到困惑的是,这不是在我的机器上抛出的(即使在模仿实时环境时 - 不涉及 Visual Studio),而是在任何其他机器上抛出。我的机器是 Windows 7 机器。我在部署到 2 个单独的 Windows Server 2008 R2 机器时遇到故障。我试过重启、关闭 UAC 等,但无济于事。我什至将它抱怨的参数转换为它所期望的对象类型,但错误保持不变。编码明智,项目设置如下:

  • 应用程序调用网关 web 服务
  • 网关 web 服务检查 web.config 条目以了解要加载的 DLL 及其位置
  • 网关本身使用 LoadFrom 加载 .dll
  • 加载的 dll 运行我的方法(在本例中是为了捕获付款),该方法使用对 authorize.net API 的 Web 引用
  • 响应返回给调用它的应用程序

任何帮助将不胜感激,因为我已经用尽了所有其他帮助途径。

谢谢,

【问题讨论】:

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


    【解决方案1】:

    检查包含“x”类型的程序集的版本。可能在 GAC 中安装了它的另一个版本。

    还要检查这个:Unable to cast object of type MyObject to type MyObject

    【讨论】:

    • 感谢您的回复。它们在 GAC 和 ASP.net 临时文件中的版本相同。我现在正在浏览这个链接。如果即使在我自己的开发环境中也无法让它工作,这不是一个解决方案吗?再次感谢
    【解决方案2】:

    我想通了。我在指定位置和 web 服务所在的 bin 目录中都有我正在加载(使用反射)的 .dll。似乎是一个很大的不。从 bin 目录中删除 .dll 解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多