C#例外情况包括事件详情
一般来说,我对C#和Windows开发还不熟悉。我需要使用它来构建MySQL中的数据与Microsoft Dynamics GP(使用eConnect)之间的集成。这一部分实际上并不相关,但为下面的示例添加了一些上下文 好的,当我连接到服务时:C#例外情况包括事件详情,c#,windows,exception,C#,Windows,Exception,一般来说,我对C#和Windows开发还不熟悉。我需要使用它来构建MySQL中的数据与Microsoft Dynamics GP(使用eConnect)之间的集成。这一部分实际上并不相关,但为下面的示例添加了一些上下文 好的,当我连接到服务时: eConnectClient client = new eConnectClient(); string newCustomerDocument = "SOME_XML_HERE"; string connectionString = "Data Sou
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");
}
eConnectClient=new eConnectClient();
string newCustomerDocument=“SOME\u XML\u HERE”;
string connectionString=“数据源=本地主机;集成安全性=SSPI;持久安全性信息=False;初始目录=GPVPM;”;
尝试
{
client.Open();
bool result=client.CreateEntity(connectionString,newCustomerDocument);
}
捕获(错误异常e)
{
编写(“EconConnect错误:+e.ToString()+”\n”);
}
现在,如果我的XML中有一个错误,它将导致抛出一个FaultException
,但是生成的异常消息是无用的:
ECONNECT故障:System.ServiceModel.FaultException`1[GPConnect.ECONNECT.eConnectFault]:此故障的创建者未指定原因。(故障详细信息等于GPConnect.eConnect.eConnectFault)
我发现如果我查看Windows的事件查看器,它会描绘出一幅完全不同的画面:
具体而言:
错误号=250存储过程=taUpdateCreateCustomerRcd错误描述=税务计划主表中不存在税务计划
因此,这是一些可操作的东西,可以帮助我识别问题并解决它
问题:
使用C#,如何从异常中获得与事件管理器记录的相同级别的详细信息?服务器可能会也可能不会将详细异常返回给客户端。你可能想检查一下
e.Detail /* of type GPConnect.eConnect.eConnectFault */
及
在catch块中查找可能的详细信息。尝试调试应用程序并在调试器中检查抛出的异常,可能信息就在那里。异常属于哪种特定类型?您是否检查过InnerException属性中没有保存该信息?它是一个
FaultException
。我试过检查各种其他属性,如InnerException和数据,但它们也是空的。Cillosis,我是dynamics GP开发者,现在刚刚开始学习C。如果将来需要讨论样本主题的事情,我可以和你互动吗?这就是我在上面评论的基本意思。哈哈,不知为什么我从来没有注意到细节
属性。我只需输出e.Detail.Message
,它就有了我所需要的一切!谢谢将在选项可用时立即接受答案。
e.InnerException