捕获的SAP异常是乱码
本文关键字:异常 SAP | 更新日期: 2023-09-27 18:13:05
当我在本地电脑上测试时,它是英语。
当我部署到位于香港'中国的web服务器时,它是胡言乱语。
我已经把文化信息强制译成英文了,还是一样的
我想用英文记录异常,然后相应地向用户显示异常,而不是乱码。
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
try
{
...
}
catch (SAP.Connector.RfcSystemException rfcSystemException)
{
LogHandler.LogError(logger, "", rfcSystemException);
ShowMessage("RfcSystemException", rfcSystemException.Message);
}
消息:物料XXX在YYY工厂未维护
错误码:RFC_ERROR_SYSTEM_FAILURE
来源:SAP.Connector.Rfc
堆栈跟踪:在SAP.Connector.SAPConnection
。ThrowRfcException(RFC_ERROR_INFO_EX rfcerrInfo, Encoding Encoding, String languangeCode)在SAP.Connector.Rfc.RfcClient。RfcInvoke(SAPClient代理,String方法,Object[] methodParamsIn)在SAP.Connector.SAPClient。SAPInvoke(字符串方法,对象[]methodParamsIn)在DrawingReq_BAPI.SAPProxy1。Zats_Create_Sourcelist(String Material, String Plant, String Purorg, String Valid_From, String Valid_To, String Vendor_Code)在ComparePrice。btnUpload_Click(Object sender, EventArgs e) in d:'TFS'XXX'ComparePrice.aspx.cs:line 688
可能不是胡言乱语,可能是中文。
对于异常,切换线程CurrentUICulture将改变异常生成的语言,但它确实要求该语言安装在程序运行的操作系统上。
您可以使用CultureInfo来实现此功能。
我不知道你定义的是胡言乱语,但从你的描述来看,它可能是unicode/非unicode的问题。
您正在与SM59使用TCP/ip连接,对吗?你能对这个连接做一个统一码测试吗?
我被告知使用SAP . net Connector 3.0调用这些rfc,捕获的异常消息根据连接字符串中的语言设置显示,没有更多的胡言乱语