我对C和Windows开发基本不熟悉。我需要使用它在mysql中的数据与microsoftwandicsgp(使用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]:此错误的创建者未指定原因。(故障详细信息等于gpconnect.econnect.econnect fault)。
我发现,如果我查看Windows事件查看器,它会描绘出一幅完全不同的画面:
明确地:
错误号=250存储过程=taUpdateCreateCustomerRCD错误描述=纳税计划主表中不存在纳税计划
这是一个可以帮助我识别问题并解决问题的可操作的东西。
问题是:
用C*i,如何从事件管理器记录的异常中得到相同级别的细节?
最佳答案
服务器可能也可能不向客户端返回详细的异常。你可能想查一下
e.Detail /* of type GPConnect.eConnect.eConnectFault */
和
e.InnerException
在catch块中查找潜在的详细信息。