405 Не допускается использование метода NuGet Push
Мой сервер NuGet бросает 405 недопустимых, когда я пытаюсь сделать push. По крайней мере, вот что говорит консоль NuGet:
Failed to process request. 'Method Not Allowed'.
The remote server returned an error: (405) Method Not Allowed..
Но когда я смотрю на фактический ответ HTTP с Fiddler, проблема кажется совершенно иной:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code></code>
<message xml:lang="en-US">The URL representing the root of the service only supports GET requests.</message>
</error>
Любые идеи о том, что может происходить?
Спасибо!
Ответы
Ответ 1
После нескольких часов работы над проблемой я смог найти проблему.
Когда вы планируете пакеты LIST на сервере NuGet, вы указываете http://nugetserver.com/ nuget. Однако, когда вы пытаетесь выполнить PUSH или DELETE, вам нужно указать http://nugetserver.com без папки nuget в путь.
Что происходит, так это то, что NuGet.exe добавляет /api/v2/package к URL-адресу, превращая его в http://nugetserver.com/ апи/v2/пакет
Я думаю, что это далеко не оптимально, потому что он заставляет вас добавить два разных источника в ваш nuget.exe.config: один для get/list и другой для push/delete пакетов.
Ответ 2
В дополнение к использованию nuget push -Source http://nugetserver.com
я сделал следующее:
<!--Add the following to the beginning of <system.webServer><modules>:-->
<remove name="WebDAVModule" />
<!--Add the following to the beginning of <system.webServer><handlers>:-->
<remove name="WebDAV" />
Источник: Проблема Nuget # 1789
Ответ 3
У меня была такая же ошибка - в моем случае моя переменная окружения NuGet указывала на старую версию NuGet версии v2, и я пытался нажать на канал v3.
Перестановка моей переменной окружения в v3 NuGet.exe исправлена.
Глупая ошибка, но, надеюсь, это может сэкономить некоторое время.
Ответ 4
решение для меня - запуск локального IIS на компьютере Win 8.1
должен был включить "аутентификацию Windows" и "олицетворение ASP.NET"
Ответ 5
Исправление для меня было в IIS.
Я отключил проверку подлинности Windows и включил анонимную аутентификацию.
Я нажимал на свой собственный сервер nuget.