从wcf到asmx的错误传播
本文关键字:错误 传播 asmx wcf | 更新日期: 2023-09-27 17:51:08
我有一个web方法(.asmx web service
),它使用另一个服务方法(WCF service
)。然而,我现在想在我的web方法中根据使用FaultContract<T>
从wcf服务抛出的不同类型的自定义异常编写更多的逻辑。如果我将.asmx web服务的目标框架从2.0修改为3,我可能能够实现这一点。X来支持泛型。然而,这是不可取的,因为web服务已经是活动的,并且在客户端被其他遗留应用程序使用。
有人能告诉我如何处理。asmx web方法中的wcf自定义异常吗?只要我能够在我的web方法中识别出wcf故障的类型,我就不会太在意是否有通用异常。
注意:我正在尝试实现一种分阶段退役方法,其中单个.asmx web服务将被其wcf对应项取代。这是为了向涉众证明web服务和wcf服务如何能够共存而不影响业务。
因为为了与WCF服务互操作,您被限制在。net2中运行,该服务将不得不使用basicHttpBinding。这是因为basicHttpBinding使用SOAP 1.1与客户端通信,而在。net2中没有SOAP 1.2堆栈。
如果服务定义了错误契约,那么这是因为服务希望向客户端公开强类型异常。
然而,我不知道当一个。net 2.0客户端收到这些信息时,会发生什么,但我怀疑你的客户端会因为某种。net异常而崩溃。如果异常中有什么有用的东西可以用来处理我不知道,你必须自己测试一下。
无论如何,我想不出什么好办法来解决这个问题。希望对你有所帮助。
您可以在config文件中进行一些修改来修复它。考虑以下示例:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="Tajan.Web.UI.Services.UserServiceAspNetAjaxBehavior">
<enableWebScript />
</endpointBehaviors>
<serviceBehaviors>
<behavior name="debug">
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="debug" name="YOUR_SERVICE_CLASS">
<endpoint address="" behaviorConfiguration="YOUR_SERVICE_CLASS_Behavior" binding="webHttpBinding" contract="YOUR_SERVICE_CLASS_INTERFACE" />
</service>
</services>
</system.serviceModel>