WCF 服务中出现错误报告?

Error Reporting in WCF Service?

提问人:Ahmed 提问时间:6/14/2009 更新时间:6/14/2009 访问量:1297

问:

我有一个自承载的 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 错误报告

评论


答:

5赞 mundeep 6/14/2009 #1

在 WCF 中,应改为定义并引发 FaultException。以下文章提供了示例和详细信息:

2赞 marc_s 6/14/2009 #2

由于 WCF 本身可以与 non-.NET 平台互操作,因此使用严格的 .NET 构造 Exceptions 是一个坏主意。如果您有 WCF 连接(例如在会话方案中),它通常还会中断 WCF 连接。

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

马克

评论

0赞 Ahmed 6/15/2009
但这是net tcp服务,所以我确信所有客户端都是.Net应用程序
0赞 marc_s 6/15/2009
现在 - 是的 - 明天呢?
0赞 marc_s 6/16/2009
如果您已经知道正确的方法是什么,为什么还要开始使用“错误”的方法呢?你最终会在未来的某个时候遇到问题.....