被捕的SAP异常是胡言乱语

时间:2016-10-14 03:52:23

标签: c# asp.net webforms sap saprfc

当我在我的本地计算机上测试时,它是英文的。

当我部署到位于香港\中国的网络服务器时,这是胡言乱语。

我已经将文化信息强制为英文,仍然是相同的。

我想用英语记录异常,无论如何,然后相应地向用户显示异常但不是乱码。

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

     

堆栈追踪:

     

at SAP.Connector.SAPConnection.ThrowRfcException(RFC_ERROR_INFO_EX rfcerrInfo,Encoding encoding,String languangeCode)      在SAP.Connector.Rfc.RfcClient.RfcInvoke(SAPClient proxy,String method,Object [] methodParamsIn)      在SAP.Connector.SAPClient.SAPInvoke(String方法,Object [] 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)中的d:\ TFS \ XXX \ ComparePrice.aspx.cs:第688行

3 个答案:

答案 0 :(得分:0)

这可能不是胡言乱语,可能是中国人。

对于异常,切换线程CurrentUICulture将更改生成异常的语言,但它确实需要在运行程序的操作系统上安装该语言。

您可以使用CultureInfo.InvariantCulture来使用它,它使用英语进行字符串本地化。

答案 1 :(得分:0)

我现在不知道你所说的乱码,但根据你的描述,这可能是unicode / non-unicode的问题。

您正在使用与SM59的TCP / IP连接,对吗? 你能对那个连接进行Unicode测试吗?

答案 2 :(得分:0)

我被告知使用SAP .Net Connector 3.0来调用这些RFC,并且捕获的异常消息相应地显示在连接字符串中设置的语言,不再是乱码。

相关问题