【问题标题】:Error Reporting in WCF Service?WCF 服务中的错误报告?
【发布时间】:2010-11-02 20:01:51
【问题描述】:

我有一个自托管的 Net Tcp WCF 服务,我有以下方法

        Subscribtion GetSubscribtion(int subscribtionId)
        {
            Subscribtion s;
            if (_subscribtionTable.TryGetValue(subscribtionId, out s) == false)
            {
                Console.WriteLine("Not Found SessionID");//for debugging
                throw new ArgumentException("Invalid Subscription Id");
            }
            return s;
        }

抛出异常是服务编程中报告错误的好习惯吗?

【问题讨论】:

    标签: c# wcf error-reporting


    【解决方案1】:

    在 WCF 中,您应该定义并抛出一个 FaultException。以下文章提供了示例和详细信息:

    【讨论】:

      【解决方案2】:

      由于 WCF 本质上可以与非 .NET 平台互操作,因此使用严格的 .NET 构造的异常是一个坏主意。如果您有 WCF 连接(例如在会话场景中),它通常也会中断您的 WCF 连接。

      要走的路是使用可互操作的 SOAP 错误,甚至可以传输到非 .NET 客户端。

      马克

      【讨论】:

      • 但这是 net tcp 服务,所以我确信所有客户端都是 .Net 应用程序
      • 现在 - 是的 - 明天呢?
      • 如果您已经知道正确的方法是什么,为什么还要开始使用“错误”的方法?你最终会在未来某个时候遇到问题.....
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多