Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#例外情况包括事件详情_C#_Windows_Exception - Fatal编程技术网

C#例外情况包括事件详情

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

一般来说,我对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");
}
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