ASMX Web引用未更新服务返回类型已更新

时间:2010-02-21 20:04:53

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

我有一个名为MyCompany.WebService1

的网络服务

我在ASP.net Web应用程序中使用Web引用引用它。

在此Web服务中有一个名为“GetDeal”的方法,它返回一个“Deal”对象。 交易对象目前看起来(例如)像这样:

public class Deal
{
    Public string Name {get;set;}
    Public string Description {get;set;}
}

此类位于不同的程序集中:MyCompany.Model

Web服务引用此程序集。

在我的网络应用中,我可以调用GetDeal方法。 这将返回Service1.Deal(service1只是Web引用的名称)

我可以访问上面的两个属性。

我现在更改了Deal类,并添加了更多属性。 但是,我在Web应用程序中看不到这些新属性。

我已在Web应用程序中更新了Web服务。 我重建了几次Web服务,尝试删除MyCompany.Model引用并重新添加它等...

我无法弄清楚发生了什么变化......这是有效的 - 我之前更改了模型,它正确地更新了参考...

我错过了什么?

2 个答案:

答案 0 :(得分:5)

只要满足以下几点,这应该有效:

  • 新属性标记为Public,必须是读/写(必须有getter和setter)
  • 您已编译了主机Web应用程序(公开Web服务的Web应用程序)。
  • (您可以尝试在Web浏览器中调用Web服务以检查新属性是否可见。)
  • 您已更新了客户端应用程序的Web引用(并重新构建了应用程序)

答案 1 :(得分:2)

除了Martin建议的内容之外,您还必须运行更新后的服务。

我建议您查看WSDL以查看更改是否生效。将“?wsdl”添加到浏览器中的Web服务URL,并查看新属性是否出现在顶部的XML Schema中。