C#异常包含事件详细信息

时间:2014-12-11 20:29:04

标签: c# windows exception

我是C#和Windows开发的新手。我需要使用它来构建MySQL中的数据与Microsoft Dynamics GP之间的集成(使用eConnect)。这部分并不真正相关,但为下面的例子增加了一些背景。

好的,所以当我连接到服务时:

eConnectClient client = new eConnectClient();
string newCustomerDocument = "SOME_XML_HERE";
string connectionString = "Data Source=localhost;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=GPVPM;";
try
{
    client.Open();
    bool result = client.CreateEntity(connectionString, newCustomerDocument);
}
catch (FaultException<eConnectFault> e)
{ 
    Console.Write("ECONNECT FAULT: " + e.ToString() + "\n");
}

现在,如果我的XML中有错误,它将导致抛出FaultException,但生成的异常消息无效:

  

ECONNECT FAULT:System.ServiceModel.FaultException`1 [GPConnect.eConnect.eConnectFault]:此错误的创建者未指定Reason。 (故障详细信息等于GPConnect.eConnect.eConnectFault)。

我发现如果我查看适用于Windows的事件查看器,它会描绘出发生的情况完全不同:

enter image description here

具体做法是:

  

错误编号= 250存储过程= taUpdateCreateCustomerRcd错误说明=税务表主表中不存在税表

这是可操作的,可以帮助我识别问题并修复它。

问题:

使用C#,如何从事件管理器记录的异常中获取相同级别的详细信息?

1 个答案:

答案 0 :(得分:3)

服务器可能会也可能不会向客户端返回详细的例外。您可以查看

e.Detail /* of type GPConnect.eConnect.eConnectFault */

e.InnerException

在catch区块内寻找潜在的细节。