Исключение при сохранении Настроек

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
Hace 12 años
При сохранении изменений в Настройках возникает исключение:
"Index (zero based) must be greater than or equal to zero and less than the size of the argument list."

Проблема в файле: Libraries\Nop.Services\Logging\CustomerActivityService.cs
Решением может быть:

158: comment = CommonHelper.EnsureNotNull(comment);
159: if (commentParams.Count() > 0)
160:     comment = string.Format(comment, commentParams);
161: comment = CommonHelper.EnsureMaximumLength(comment, 4000);
Hace 12 años
Предположу, что вы используется русский пакет с локализацией, и что там видимо есть ошибка в одной из ресурсов. Аналогичкая проблема - https://www.nopcommerce.com/boards/t/15226/when-changing-to-different-language-wishlist-url-does-not-work-result-in-error-page.aspx
Hace 12 años
Проверил пакет. Там ошибочный ресурс. 'ActivityLog.EditSettings' должен быть "Изменена настройка", а не "Изменена настройка ('{0}')"
Hace 12 años
Верно, используется пакет локализации. Ошибку в файле локализации исправил. Спасибо.
Hace 12 años
nopCommerce v2.50

Ошибка продолжает повторяться при редактировании в разделе "Все настройки".
Причина в том, что при вызове перегруженного метода
public virtual ActivityLog InsertActivity(string systemKeyword, string comment, params object[] commentParams)

аргумент commentParams получает значение object[0], а string.Format в строке 159 этого не понимает.

Предлагаю сделать что-то типа:

158 comment = CommonHelper.EnsureNotNull(comment);
159    if (commentParams.Count() > 0)
160        comment = string.Format(comment, commentParams);
161 comment = CommonHelper.EnsureMaximumLength(comment, 4000);


[Updated] Файл локализации используется, но ошибки с '{0}' в нём нет.
Hace 12 años
Все работает нормально, только что проверил. Уверен, что ошибка где-то в локализации. Сделайте экпорт вашего языкого пакета и закачайте его куда-нибудь, я проверю.
Кстати, когда вы исправили ту ошибку (месяц назад), ошибка ведь исчезла тогда? Просто никакие из данных файлов ("CustomerActivityService.cs" и "SettingController.cs") не менялись уже несколько месяцев
Hace 12 años
Файл локализации: [Deleted]
Но вроде там всё нормально.

У меня всё работало видимо потому, что я в своей версии всёже сделал то, что предлагал выше.
Hace 12 años
TrioN wrote:
Файл локализации: http://buy69.ru/ru_250.zip

Файл не найден

TrioN wrote:
У меня всё работало видимо потому, что я в своей версии всёже сделал то, что предлагал выше.

Так все верно. Если локальный ресурс создан верно, то все будет работать без ошибок
Hace 12 años
По моему это всё таки ошибка. Ноги растут из выше стоящего перегруженного метода:

135 public virtual ActivityLog InsertActivity(string systemKeyword, string comment)
136 {
137     return InsertActivity(systemKeyword, comment, new object[0]);
138 }

string s = string.Format("Test {0}", new object[0]);

вернёт как раз этот эксепшен. Правильно будет что-то типа того:

135 public virtual ActivityLog InsertActivity(string systemKeyword, string comment)
136 {
137     return InsertActivity(systemKeyword, comment, new object[] {String.Empty});
138 }


Тогда проверку использовать не нужно.
Hace 12 años
Да нет тут никакой ошибки. У всех все работает хорошо. Единственная ошибка, которая тут может быть - это пакет локализации с ошибочными ресурсами (например, использование '{0}' там где этого быть не должно).
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.