SVN_ERR_RA_DAV_REQUEST_FAILED при использовании SharpSVN.GetLog из программы, запущенной с часовым поясом UTC-XC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SVN_ERR_RA_DAV_REQUEST_FAILED при использовании SharpSVN.GetLog из программы, запущенной с часовым поясом UTC-X

Сообщение Anonymous »

Я использую пакет SharpSvn NuGet (версия 1.14003.272) для доступа к серверу SVN через https.
Примечание: мой компьютер настроен на автоматическую настройку времени для летнее время (летнее время), и я предполагаю, что сервер (под управлением Windows Server) делает то же самое. Поэтому, когда я говорю, что что-то использует часовой пояс CET (UTC+1) или ET (UTC-5), на самом деле в данный момент это, вероятно, будет CEST (UTC+2) или EDT (UTC-4).
На моем компьютере (расположенном в Германии) по умолчанию установлен часовой пояс CET. Предположительно это тот же сервер, который также находится в Германии.
При использовании настроек по умолчанию все работает нормально.
Но когда я вручную настроить часовой пояс ПК на восточное время (UTC-5) перед запуском программы, функция SvnClient.GetLog завершается с ошибкой SvnRepositoryIOException.
Это ошибка возникает только тогда, когда при запуске программы был выбран часовой пояс UTC-X, а не когда я выбрал часовой пояс UTC или UTC+X.
Вот все соответствующие свойства исключений:

Код: Выделить всё

HResult: -2146233088
InnerException: null
Message: "Unexpected HTTP status 400 'Bad Request' on '/path/to/repository/!svn/me'"
Source: "SharpSvn"
StackTrace: 
SvnErrorCategory: 35
SvnErrorCode: SVN_ERR_RA_DAV_REQUEST_FAILED (175002)
Вот трассировка стека:

Код: Выделить всё

at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, SvnException error, Object targets)
at SharpSvn.SvnClient.InternalLog(ICollection`1 targets, Uri logRoot, SvnRevision altPegRev, SvnLogArgs args, EventHandler`1 logHandler)
at SharpSvn.SvnClient.Log(ICollection`1 targets, SvnLogArgs args, EventHandler`1 logHandler)
at SharpSvn.SvnClient.GetLog(ICollection`1 targets, SvnLogArgs args, Collection`1& logItems)
at [stack of my methods starts here]
Мой App.xaml.cs выглядит следующим образом:

Код: Выделить всё

public partial class App : PrismApplication
{
protected override void Initialize()
{  // X
base.Initialize();

// [...]
}

// [...]
}
Я установил точку останова на строке, отмеченной // X; Насколько я могу судить, это первая строка моего кода, которую когда-либо запускает программа. Но точка невозврата находится еще раньше, где-то в коде запуска фреймворка:
  • Часовой пояс компьютера — UTC или UTC+X. Запускаю программу, попадаю в точку останова в строке X, меняю часовой пояс на UTC-X, продолжаю выполнение - GetLog работает.
  • Часовой пояс такой UTC-X. Начинаю, нажимаю точку останова X, переключаюсь на UTC или любое UTC+X, продолжаю — GetLog завершается неудачно.
Здесь вот некоторые наблюдения, которые я сделал, пытаясь найти точку сбоя:
  • Я получил ту же ошибку, когда использовал SharpSvn.1.9-x64; Я обновился до SharpSVN в надежде таким образом исправить ошибку, но, к сожалению, это не помогло.
  • UTC+14/3/2/1/0 и само UTC все работает, UTC -1 и UTC-5 — нет.
  • Репозиторию больше двух лет, поэтому UTC-X не относится к моменту времени, когда репозиторий еще не существовал.< /li>
    Использование команды «Показать журнал» TortoiseSVN из контекстного меню работает в любое время.
  • Выполнение «Оформить заказ» или «Обновить», а не «Показать» Журнал" работает независимо от каких-либо махинаций с часовыми поясами.
  • Использование https или http для запросов не имеет значения.
  • Я попробовал это с помощью два разных сервера.
На данный момент я даже не знаю, где искать, так как мало что знаю о WebDAV и не могу объясните, почему настройка часового пояса важна только во время запуска приложения и почему она важна только для GetLog, но не для других команд.

Подробнее здесь: https://stackoverflow.com/questions/788 ... started-wi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»