你的程序里没有try catch吗?
我现在没有.NET,对您的问题,我也感到不解
不过倒是有个变通的方法
string aa[];
aa = sDetailMessage.Split("$%^&*");
if(aa.length>2)
{
  sErrorMessage = aa[1];
}

解决方案 »

  1.   

    try:string s = @"System.Web.Services.Protocols.SoapException: ·þÎñÆ÷ÎÞ·¨´¦ÀíÇëÇó¡£ ---> Common.DetailException: $%^&*µ÷ÓÃWeb·½·¨(GetFirstData)ʱ³öÏÖÒì³£:\nָûÕÒµ½Ö¸¶¨µÄÒµÎñ×Ö¶Î:BContractGuId\n$%^&*\n at CrmWebService.CommonWebService.GetFirstData()";
     string pat = @"\$%\^&\*";
     Regex r = new Regex(pat,RegexOptions.Multiline);
     string[] tokens = r.Split(s);
     foreach(string token in tokens)
       Console.WriteLine(token);
      

  2.   

    string s = "System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> Common.DetailException: $%^&*调用Web方法(GetFirstData)时出现异常:\n指没找到指定的业务字段:BContractGuId\n$%^&*\n at CrmWebService.CommonWebService.GetFirstData()";
    string pat = @"\$%\^&\*";
     Regex r = new Regex(pat,RegexOptions.Multiline);
     string[] tokens = r.Split(s);
     foreach(string token in tokens)
       Console.WriteLine(token);