【问题标题】:Webservice Reflection ExceptionWeb服务反射异常
【发布时间】:2009-09-15 07:13:35
【问题描述】:

早上好,

我有点进退两难。

我在 C# 项目中有一个 Web 服务引用。该网络服务调用一个名为“PlaceOrder”的方法。该对象具有对象类型的属性 Item。

当我创建 web 服务客户端的实例时,我得到一个异常“有一个错误反映'项目'。”。这是 .net 3.5 中正常生成的 Web 服务引用。

    OrderServiceClient orderService = new OrderServiceClient();
    orderService.Open(); <== exception occures here
    orderService.Close();

欢迎任何帮助。

【问题讨论】:

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


    【解决方案1】:

    它不知道该属性会发生什么;你包括[XmlInclude]等吗?但是object 根本无法在 Web 服务上运行。

    理想的答案是使网络服务更加具体,因此它具有(例如)Customer(这样输入)。您能否提供一个服务器端代码的示例?我很惊讶它可以在服务器上运行......


    重新评论;嗯...如果是第 3 方,这可能会非常棘手;您可能不得不求助于编辑生成代码(if XmlInclude 有效,我不能保证),或者破解 wsdl... 并不简单。 听起来,您好像在使用 2.0 Web 服务参考(间接使用 wsdl.exe)。你也可以试试:

    • WSE3 (wse3wsdl.exe)
    • WCF(在 .NET 3.0 和 avove 中;svcutil.exe)

    【讨论】:

    • 好吧,我们尝试使用 SoapUI 访问 Web 服务,这很有效,我们得到了一个简洁的答案。主要问题是我们无法访问服务器代码,因为这是第 3 方应用程序。服务可以返回的 2 个对象是“StatusType”和“string”。状态类型对象有 2 个字符串属性“状态”和“描述”。
    • 我们正在使用 WCF 。我刚刚和同事讨论了这个问题,他说我们可以改变网络服务。
    【解决方案2】:

    好的,我确实找到了解决这个问题的方法。

    我们设法更改了网络服务以提供不同的响应。

    我与我的经理以及几位高级工程师和架构师讨论了这个问题,并在业务层面解决了这个问题。

    由于其他 .net 和 java 应用程序也使用此服务(尚未构建)。因此,我们需要实施的任何 hack 都无法解决这个问题。

    总结:

    • 这个问题没有很好的解决方案(目前)
    • 始终考虑您的设计的可重用性:)

    编辑: 我确实发现,如果你将对象变成 object[] 它会突然起作用。为什么?我不知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多