wcf-data-services - WCF 数据服务中错误处理的最佳实践

标签 wcf-data-services odata

从 Wcf 数据服务抛出异常并从 .net 客户端捕获异常的最佳实践是什么?

最佳答案

总的来说,我不确定是否有很多最佳实践,但这里有一些可能会有所帮助的想法。

  1. 默认情况下,WCF 数据服务不会向客户端传输异常详细信息。这是因为我们认为默认情况下服务应该是安全的。传输异常详细信息可能会导致无意的信息泄露。要打开详细异常传输,您需要将 ServiceBehavior 属性添加到您的服务并将 UseVerboseErrors 设置为 true:

using System.Data.Services;
using System.Data.Services.Common;
using System.ServiceModel;

namespace Scratch.Web
{
    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
    public class ScratchService : DataService<ScratchEntityFrameworkContext>
    {
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
            config.UseVerboseErrors = true;
        }
    }
}
  1. 如果您在服务器端抛出异常,则只有消息会在功能上传输到客户端,因此请确保异常消息包含您想要在客户端上显示的内容。
  2. 除此之外,只需遵循客户端异常处理的其他最佳实践即可:http://msdn.microsoft.com/en-us/library/seyhszts.aspx .

关于wcf-data-services - WCF 数据服务中错误处理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12090651/

相关文章:

.net - 构建 'flat'而不是 'tree' LINQ表达式

javascript - 如何在SAPUI5中销毁全局模型

javascript - Kendo UI 网格无法与启用 asp.net web api odata 的服务正常工作

curl - 使用 Curl for Dynamics Nav 验证 OData

c# - ASP.NET Core 3.1 OData PageResult 序列化

asp.net - 使用表单例份验证注销从不同浏览器/计算机登录的用户

odata - 如何将身份验证 header 传递给 OData 服务

linq - 从 .NET 客户端使用 ADO.NET 数据服务的服务操作

c# - 不支持继承,即使使用自定义 OData 服务提供程序?

javascript - 如何将 oData 中的日期转换为 JavaScript 中的日期?