Подтвердить что ты не робот

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>

Любые идеи о том, что может происходить?

Спасибо!

4b9b3361

Ответ 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.