问题
My NuGet server is throwing a 405 Not Allowed when I try to make a push. At least, thats what NuGet console says:
Failed to process request. 'Method Not Allowed'.
The remote server returned an error: (405) Method Not Allowed..
But when I look at the actual HTTP response with Fiddler the problem seems to be totally different:
<?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>
Any ideas on what might be going on?
Thanks!
回答1:
In addition to using nuget push -Source http://nugetserver.com
, I did this:
<!--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" />
Source: Nuget issue #1789
回答2:
After a few hours working on the issue I was able to find the problem.
When you LIST packages in NuGet server you point to http://nugetserver.com/nuget. However when you are trying to PUSH or DELETE a package you need to point to http://nugetserver.com without the nuget folder in the path.
What happens is that NuGet.exe append /api/v2/package to the URL turning it into http://nugetserver.com/api/v2/package
I think this is far from optimal because it makes you add two different sources to your nuget.exe.config: one for the get/list and another for pushing/deleting packages.
回答3:
I had the same error - in my case, my NuGet environment variable was pointing to an old v2 version of NuGet, and I was trying to push to a v3 feed.
Repointing my environment variable to a v3 NuGet.exe fixed it.
Silly error, but hopefully that might save someone some time.
回答4:
the solution for me - running a local IIS on a Win 8.1 computer -
was to enable "Windows authentication" and "ASP.NET Impersonation"
回答5:
The fix for me was in IIS. I disabled windows authentication and enabled anonymous authentication.
I was pushing to my own nuget server.
回答6:
I'm running version 3.1.2. After battling with this problem for a while, the following did it for me:
- Give write permissions to the Packages folder on the server
- Because I had deleted the previous packages in the Packages folder, I also had to delete the '*.cache.bin' file in the Packages folder.
- Ran command as "nuget.exe push {package file} {apikey} -Source {ipaddress:port}/nuget" Note the "/nuget" at the end.
来源:https://stackoverflow.com/questions/16451183/405-method-not-allowed-in-nuget-push