プッシュしようとすると、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>
何が起こっているのかについてのアイデアはありますか?
ありがとう!
問題に取り組む数時間後、私は問題を見つけることができました。
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つはパッケージのプッシュ/削除用です。
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
同じエラーが発生しました-私の場合、NuGet環境変数が古いv2バージョンのNuGetを指していて、v3フィードにプッシュしようとしました。
私の環境変数をv3 NuGet.exeに再ポイントすると修正されました。
愚かなエラーですが、うまくいけば誰かの時間を節約できるかもしれません。
私のための解決策-ローカルで実行IIS Win 8.1コンピュータで-
「Windows認証」と「ASP.NET偽装」を有効にする必要がありました
私の修正はIISでした。 Windows認証を無効にし、匿名認証を有効にしました。
私は自分のnugetサーバーにプッシュしていました。
バージョン3.1.2を実行しています。しばらくこの問題と戦った後、次のことが私のためにそれをしました: