none
该如何Debug??? RRS feed

  • 问题

  • 项目有asp.net服务器端,Silverlight客户端,中间使用“启用 Silverlight的WCF服务”进行通信。

    asp.net服务器端:

    [OperationContract]
      public List<Monitoring> GetMonitorDatasService(Monitoring.EnergyType energytype, KeyValuePair<Monitoring.Period, string> monitordate, KeyValuePair<Monitoring.MonitorType, string> monitortype, string meterusetype)
      {
      return GetMonitorDatas(energytype, energytype.ToString(), monitordate, monitortype, meterusetype);
      }

    Silverlight客户端:
     private void ChartsDataBind()
      {
      ChartsServiceClient.ChartsServiceClient serviceclient = new ChartsServiceClient.ChartsServiceClient();
      serviceclient.ChartsServiceInitializeOneAsync(issubstation);
      serviceclient.GetMonitorDatasServiceCompleted += new EventHandler<GetMonitorDatasServiceCompletedEventArgs>(serviceclient_GetMonitorDatasServiceCompleted);
      serviceclient.GetMonitorDatasServiceAsync(Monitoring.EnergyType.EM, monitordate, monitortype, meterusetype);
        
      }

    void serviceclient_GetMonitorDatasServiceCompleted(object sender, GetMonitorDatasServiceCompletedEventArgs e)
      {
      var datas = e.Result;
      MessageBox.Show(datas.Count.ToString());
      }

    问题一:现在有报错,可不可以在“Silverlight”客户端设置一个“断点”。从“Silverlight”客户端,单步调试(Debug),到服务器端(asp.net)站点,看整个的调用过程?


    “Reference.cs”下:


    public System.Collections.ObjectModel.ObservableCollection<MyCharts.ChartsServiceClient.Monitoring> EndGetMonitorDatasService(System.IAsyncResult result) {
      object[] _args = new object[0];
      System.Collections.ObjectModel.ObservableCollection<MyCharts.ChartsServiceClient.Monitoring> _result = ((System.Collections.ObjectModel.ObservableCollection<MyCharts.ChartsServiceClient.Monitoring>)(base.EndInvoke("GetMonitorDatasService", _args, result)));

    这一句报错,错误信息如下;
    格式化程序尝试对消息反序列化时引发异常: 尝试对参数 进行反序列化时出错: monitordate。InnerException 消息是““EndElement”命名空间“”中的“monitordate”并非所需元素。所需元素应为“key”。”。有关详细信息,请参见 InnerException。

    问题二:这是怎么回事呢?这个错误应该怎样调试???

      return _result;
      }    

    用自己的方法调试了一下,但是越跳越糊涂,过程如下。  

    1、在“SL 客户端”设断点调试时,一直调试下去也不报错,但是最后也没有显示指定的“asp.net”页面,最后是如下的一个VS窗口:




    2、而在“asp.net 服务器端”,为“提供服务的方法”设断点后,如下图:


    该断点根本就没有执行,直接报出了如上的错误。

    问题三:请问到底是怎么回事?应该怎样调试这个错误呢???


    有精到广,做出自己的特色。

    • 已移动 Bob Shen 2012年3月9日 5:51 (发件人:Visual C#)
    2012年3月7日 8:09

答案