-4

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

当我部署到位于 HK\China 的 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,编码编码,字符串语言代码)在 SAP.Connector.Rfc.RfcClient.RfcInvoke(SAPClient 代理,字符串方法,Object[] methodParamsIn)在 SAP.Connector.SAPClient.SAPInvoke(字符串方法,Object[] methodParamsIn) at DrawingReq_BAPI.SAPProxy1.Zats_Create_Sourcelist(String Material, String Plant, String Purorg, String Valid_From, String Valid_To, String Vendor_Code) at ComparePrice.btnUpload_Click(Object sender, EventArgs e) in d:\TFS\XXX \ComparePrice.aspx.cs:第 688 行

4

3 回答 3

0

应该不是乱码,应该是中文吧。

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

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

于 2016-10-14T04:43:46.770 回答
0

我现在不认为您定义为胡言乱语,但根据您的描述,这可能是 unicode/non-unicode 的问题。

您正在使用带有 SM59 的 TCP/IP 连接,对吗?你能在那个连接上做一个 Unicode 测试吗?

于 2016-10-17T09:56:15.697 回答
0

有人告诉我使用 SAP .Net 连接器 3.0 调用这些 RFC,捕获的异常消息会根据连接字符串中设置的语言显示,不再乱码。

于 2016-10-19T02:59:14.860 回答