405 Method Not Allowed in NuGet Push
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.
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
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.