1

我有一个自托管的 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;
        }

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

4

2 回答 2

5

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

于 2009-06-14T14:44:10.920 回答
2

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

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

马克

于 2009-06-14T15:46:41.130 回答