System.ServiceModel.dll中的"System.ServiceModel.FaultException":过程不存在



让一个Web服务工作了多年,然后有一天它开始在生产中爆炸:

System.ServiceModel.dll中首次出现类型为"System.ServiceModel.FFaultException"的异常附加信息:程序"GetDoorToDoorRatesRequest"不存在。

每次都会出错。

WSDL显示该过程仍然存在,并且在该过程中手动启动测试SOAPXML信封会得到有效的响应。

在我们的案例中,异常具有误导性:

  1. 有问题的类是一个请求模型类,而不是真正的过程。

  2. 事实上它是存在的。

  3. 真正的问题是它的格式发生了变化;我们调用的服务器端在没有更改主要甚至次要版本号的情况下,也没有警告我们的情况下更改了Request类的属性。这意味着一个中断的Production调用和一条令人困惑的错误消息。

解决方案是从WSDL更新服务引用并重新编译。有趣的是,我们使用的现有属性都没有更改或删除,所以这个异常基本上只是我们的方式。

希望这能帮助其他人!

相关内容

最新更新