У меня есть веб-приложение, которое запускает PowerShell для запуска git.
У меня есть локальный IIS, настроенный для работы в качестве моей собственной учетной записи пользователя. Пул приложений настроен на использование моей учетной записи, а в модели процесса для loadUserProfile и setProfileEnvironment установлено значение true.
Проблема в том, что команда git ведет себя по-разному в IIS и IIS Express. В git config --show-origin -l
перечислены идентичные настройки из одинаковых мест в обеих средах, поэтому настройки, которые используют оба экземпляра, кажутся одинаковыми. Несмотря на то, что в обоих местах выполняется один и тот же код, команда git fetch
выполняется успешно в IIS Express, но завершается ошибкой в IIS с ошибкой:
FATAL ERROR: Disconnected: нет доступных поддерживаемых методов аутентификации (сервер отправил: открытый ключ)
фатальный: Не удалось прочитать из удаленного репозитория.
Пожалуйста, убедитесь, что у вас есть правильные права доступа и репозиторий существует.
Я не могу найти объяснение этому. Это одно и то же веб-приложение, либо опубликованное в моем локальном IIS, либо работающее непосредственно в Visual Studio. Настройки конфигурации Git кажутся идентичными во всех 4 файлах конфигурации, к которым Git обращается в Windows, и тем не менее подключение к удаленному репозиторию завершается сбоем в одной среде, но не в другой. Одна и та же учетная запись пользователя используется для запуска процесса в обоих местах.
git config --local core.sshCommand "'C:\Program Files\PuTTY\plink.exe' -i ~/.ssh/stash-nopass.ppk"
. Обратите внимание, что путь к плинку заключен в одинарные кавычки. Это позволит выполнять выборку/вытягивание без проведения конкурса. - person Triynko   schedule 11.01.2019