【问题标题】:HandleException doesn't get executedHandleException 没有被执行
【发布时间】:2014-04-22 05:06:15
【问题描述】:

我正在处理 WCF 数据服务,我想在遇到自定义错误时添加自定义错误。通过我的研究,我指出要重写 HandleException 方法,这样我就可以捕获我将遇到的任何异常,但如果出现错误,该方法就不会被执行。我做错了什么?

这是我用来强制异常的示例代码。

    throw new DataServiceException("Testing");

这里是重写方法 HandleException。

    protected override void HandleException(HandleExceptionArgs args)
    {
        throw new DataServiceException("HandleException");
    }

这是我的配置。

    public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("*", EntitySetRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        config.DataServiceBehavior.AcceptProjectionRequests = true;
        config.UseVerboseErrors = true;
    }

请帮助ppppp!

【问题讨论】:

    标签: wcf exception-handling odata wcf-data-services


    【解决方案1】:

    你能告诉我们你把异常抛出的代码放在哪里了吗?

    以下代码将其放入自定义的Action中,即可成功调用Handler。

        protected override void HandleException(HandleExceptionArgs args)
        {
            Console.WriteLine("hello");
            using (FileStream fs = new FileStream("D:\\time.txt", FileMode.Append))
            using (StreamWriter sw = new StreamWriter(fs))
            {
                sw.WriteLine(DateTime.Now);
            }
    
        }
    
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetServiceOperationAccessRule("S1", ServiceOperationRights.All);
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
            config.DataServiceBehavior.AcceptProjectionRequests = true;
            config.UseVerboseErrors = true;
        }
    
        [WebGet]
        public int S1()
        {
            throw new DataServiceException("ui1");
        }
    

    另外,如果我在 IRequestHandler 逻辑中放入异常,处理程序方法也会被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2019-09-14
      • 2017-02-26
      • 1970-01-01
      相关资源
      最近更新 更多