当我在我的本地计算机上测试时,它是英文的。
当我部署到位于香港\中国的网络服务器时,这是胡言乱语。
我已经将文化信息强制为英文,仍然是相同的。
我想用英语记录异常,无论如何,然后相应地向用户显示异常但不是乱码。
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行
答案 0 :(得分:0)
这可能不是胡言乱语,可能是中国人。
对于异常,切换线程CurrentUICulture将更改生成异常的语言,但它确实需要在运行程序的操作系统上安装该语言。
您可以使用CultureInfo.InvariantCulture来使用它,它使用英语进行字符串本地化。
答案 1 :(得分:0)
我现在不知道你所说的乱码,但根据你的描述,这可能是unicode / non-unicode的问题。
您正在使用与SM59的TCP / IP连接,对吗? 你能对那个连接进行Unicode测试吗?
答案 2 :(得分:0)
我被告知使用SAP .Net Connector 3.0来调用这些RFC,并且捕获的异常消息相应地显示在连接字符串中设置的语言,不再是乱码。