如果Web服务工作多年,那么有一天它开始在生产中爆炸:
类型' System.ServiceModel.FaultException'的第一次机会异常。发生在System.ServiceModel.dll中 附加信息:程序' GetDoorToDoorRatesRequest'不存在。
每次出错。
WSDL显示该过程仍然存在,并在该过程中手动触发测试SOAP XML信封获得有效响应。
答案 0 :(得分:1)
在我们的案例中,例外是误导性的:
有问题的类是一个Request Model类,而不是一个过程。
实际上是在场。
真正的问题是格式发生了变化;我们调用的服务器端已经更改了Request类的属性而没有更改主要版本号甚至次要版本号,并且没有警告我们。这意味着生产调用中断,错误消息令人困惑。
解决方案是从WSDL更新服务引用并重新编译。有趣的是,我们使用的现有属性都没有改变或被删除,所以异常基本上就在我们的路上。
希望这有助于其他人!