zoukankan      html  css  js  c++  java
  • Silverlight与WCF错误处理:Server Not Found(1)

          在阅读本文前,你应该已经对Sl与WCF的编程模型有所了解。当使用WCF与Siverlight进行通信时,一旦服务端处理数据发生了异常,尽管Silverlight客户端可以使用

    AsyncCompletedEventArgs.Error属性判断是否发生错误,但是由于默认情形下WCF的异常信息无法传递到客户端,这导致我们无法准确的判断错误的原因。

          image

    图1

            关于这个问题,MSDN上已经对此进行了阐述:在 Silverlight 中创建和处理错误 ,这篇文章已经将原理解释的很清楚了。不过根据MSDN上的步骤,

    在Sl应用程序中会遇到一些问题,本篇文章则带你按步实现Silverlight获取WCF的错误信息.

            1.建立Sl应用程序后,Web项目中添加Siverlight-enabled WCF Service模板

             image图2   

     

           2. 添加成功后,会自动为项目添加SilverlightFaultBehavior类,仔细看下SilverlightFaultBehavior类的实现,会发现它将Http的状态码改为了200image

           3.下面进行Web.Config的配置

    image

             图中说明已经很清晰了,一共修改了4个地方,如果你是第一次做,可能每一个地方都要花费不少的时间去理解。如果includeExceptionDetailInFaults没有进行改动,也可以在服务契约的行为进行设置

         [ServiceContract(Namespace = "")]
         [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
         [SilverlightFaultBehavior]
         [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
         public class WcfTestService
         {
         }
        

          4.现在Web.Config已经配置了,下面在操作契约里抛出一个异常:

       [OperationContract]
       public void DoWork()
       {
        throw  new ApplicationException("发生了异常");
       }

          在浏览器中可以看到元数据后,就可以在客户端引用服务。

          5.调用该操作,可以看到错误信息了:

    image 

    image       这篇文章,主要是通过手动配置的方式完成对异常信息的更改,对初学者麻烦了点.希望给有需要的人一点提示,下一篇将关注WCF的错误契约异常处理。

     

         代码下载:WcfExceptionLesson.rar

  • 相关阅读:
    转DataBinder.Eval总结
    ASP.NET环境下XML导出导入数据方法
    iOS开发中GCD在多线程方面的理解
    hdu 1678 优先队列
    hdu 1565 状态压缩DP
    hdu 1175 连连看
    hdu 1078 记忆化搜索
    hdu 1506
    hdu 1521 记忆化搜索
    三大博弈[转]
  • 原文地址:https://www.cnblogs.com/626498301/p/2052111.html
Copyright © 2011-2022 走看看