Silverlight中的ServiceStack异常处理

时间:2013-11-19 15:29:14

标签: silverlight servicestack

我试图了解如何处理来自ServiceStack服务的Silverlight中的异常。

public class TestService : Service
{
    public object Any (TestRequest request)
    {
        throw new Exception("Name");

        var lst = new List<TestResponse>();

        for (int i = 0; i < 20; i++)
        {
            var item = new TestResponse { ID = i, Descrizione = string.Format("Descr_{0}", i) };

            lst.Add(item);
            {
            }
            return lst;
        }
    }
}

我在wiki中看到泛型异常是作为500 InternalServerError处理的,但是当我在示例中抛出异常时,我没有在参数中收到异常数据(但是使用fiddler我可以看到Json中的所有数据。)

我的SilverLight代码是

    private ServiceClient<TestRequest, ContainerTestResponse> serviceClient;

    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {

        serviceClient = new ServiceClient<TestRequest, ContainerTestResponse>();

        serviceClient.Completed += serviceClient_Completed;
    }

    void serviceClient_Completed(object sender, ServiceClientEventArgs<ContainerTestResponse> e)
    {
        var webEx = e.Error as WebException;
        if (webEx != null)
        {
           //can't figure out where "Name" is...
            var webResponse = (HttpWebResponse)webEx.Response;
            MessageBox.Show(webResponse.StatusDescription);
            return;
        }
        if (e.Error != null)
            throw e.Error;

        var result = e.Response.Dati;
    }


    }

我的JSon回复是

 {"ResponseStatus":{"ErrorCode":"Exception","Message":"Name","StackTrace":"[TestRequest: 19/11/2013 15:39:29]:\n[REQUEST: {}]\nSystem.Exception: Name\r\n   at SSAuthenticationProvider.TestService.Any(TestRequest request) in c:\\projects\\2013\\Demo\\SSAuthenticationProvider\\SSAuthenticationProvider\\TestService.cs:line 20\r\n   at ServiceStack.ServiceHost.ServiceRunner`1.Execute(IRequestContext requestContext, Object instance, TRequest request)","Errors":[]}}

我做错了吗?

全部谢谢

0 个答案:

没有答案