SAP исключение пойман это бред
Когда я тестирую на своем локальном компьютере, это английский.
Когда я развернул на веб-сервере, расположенном в HK\China, это бред.
Я уже выкладываю информацию о культуре на английский, все тот же.
Я хочу записать исключение на английском языке, несмотря ни на что, затем показать исключение пользователю соответственно, но не на тарабарщине.
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 proxy, метод String, Object[] methodParamsent.AP.Con.Connect.AP) в SAP-SAP. method, Object[] methodParamsIn) в DrawingReq_BAPI.SAPProxy1.Zats_Create_Sourcelist(строковый материал, строковый завод, строковый Purorg, строковый Valid_From, строковый Valid_To, строковый Vendor_Code) в ComparePrice.btnUpload_Click(отправитель объекта, XXXF): \ ComparePrice.aspx.cs: строка 688
3 ответа
Мне было сказано использовать SAP .Net Connector 3.0 для вызова этих RFC, и сообщение об исключении было отображено в соответствии с языком, заданным в строке подключения, больше не было ничего лишнего.
Я не знаю, что вы определяете как бред, но из того, что вы описываете, может быть проблема с Unicode / Non-Unicode.
Вы используете TCP / IP-соединение с SM59, верно? Не могли бы вы сделать тест Unicode для этого соединения?
Это, вероятно, не бред, это, вероятно, китайский.
Что касается исключений, переключение потока CurrentUICulture изменит язык, на котором сгенерированы исключения, но это требует, чтобы язык был установлен в операционной системе, в которой работает программа.
Возможно, вам удастся заставить это работать с помощью CultureInfo.InvariantCulture, который использует английский для своей локализации строк.