Примечание: мой компьютер настроен на автоматическую настройку времени для летнее время (летнее время), и я предполагаю, что сервер (под управлением 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]
Код: Выделить всё
public partial class App : PrismApplication
{
protected override void Initialize()
{ // X
base.Initialize();
// [...]
}
// [...]
}
- Часовой пояс компьютера — 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 для запросов не имеет значения.
- Я попробовал это с помощью два разных сервера.
Подробнее здесь: https://stackoverflow.com/questions/788 ... started-wi