web-dev-qa-db-ja.com

405 NuGetプッシュでは許可されていないメソッド

プッシュしようとすると、NuGetサーバーが405 Not Allowedをスローします。少なくとも、それはNuGetコンソールが言うことです:

Failed to process request. 'Method Not Allowed'.
The remote server returned an error: (405) Method Not Allowed..

しかし、Fiddlerで実際のHTTP応答を見ると、問題はまったく異なるようです。

<?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>

何が起こっているのかについてのアイデアはありますか?

ありがとう!

30
tucaz

問題に取り組む数時間後、私は問題を見つけることができました。

NuGetサーバーでパッケージを一覧表示する場合、 http://nugetserver.com/nugetをポイントします。ただし、パッケージをプッシュまたは削除する場合は、パスにnugetフォルダーを指定せずに http://nugetserver.com を指定する必要があります。

NuGet.exeがURLに/ api/v2/packageを追加して http://nugetserver.com/api/v2/package

Nuget.exe.configに2つの異なるソースを追加するため、これは最適とはほど遠いと思います。1つは取得/リスト用、もう1つはパッケージのプッシュ/削除用です。

50
tucaz

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 issue#1789

53
Kevin Smyth

同じエラーが発生しました-私の場合、NuGet環境変数が古いv2バージョンのNuGetを指していて、v3フィードにプッシュしようとしました。

私の環境変数をv3 NuGet.exeに再ポイントすると修正されました。

愚かなエラーですが、うまくいけば誰かの時間を節約できるかもしれません。

3
booler

私のための解決策-ローカルで実行IIS Win 8.1コンピュータで-
「Windows認証」と「ASP.NET偽装」を有効にする必要がありました

1
oakman

私の修正はIISでした。 Windows認証を無効にし、匿名認証を有効にしました。

私は自分のnugetサーバーにプッシュしていました。

0
theUser

バージョン3.1.2を実行しています。しばらくこの問題と戦った後、次のことが私のためにそれをしました:

  • サーバーのPackagesフォルダーに書き込み権限を与える
  • Packagesフォルダー内の以前のパッケージを削除したため、Packagesフォルダー内の '* .cache.bin'ファイルも削除する必要がありました。
  • コマンドを「nuget.exe Push {パッケージファイル} {apikey} -Source {ipaddress:port}/nuget」として実行しました。末尾の「/ nuget」に注意してください。
0