当我尝试推送时,我的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>
关于可能发生的事情的任何想法?
谢谢!
答案 0 :(得分:53)
除了使用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" />
答案 1 :(得分:49)
经过几个小时处理这个问题后,我找到了问题。
当您在NuGet服务器中列出包时,您指向http://nugetserver.com/ nuget 。但是,当您尝试推送或删除某个包时,您需要指向http://nugetserver.com,而不要在路径中包含 nuget 文件夹。
NuGet.exe会将 / api / v2 / package 附加到网址,将其转换为http://nugetserver.com/ api / v2 / package
我认为这远非最佳,因为它会让你为nuget.exe.config添加两个不同的源:一个用于get / list,另一个用于推送/删除包。
答案 2 :(得分:2)
我有同样的错误 - 在我的情况下,我的NuGet环境变量指向一个旧的v2版本的NuGet,我试图推送到v3提要。
将我的环境变量重新定位到v3 NuGet.exe修复它。
愚蠢的错误,但希望这可能会节省一些时间。
答案 3 :(得分:1)
我的解决方案 - 在Win 8.1计算机上运行本地IIS -
是启用&#34; Windows身份验证&#34;和#34; ASP.NET Impersonation&#34;
答案 4 :(得分:0)
我的修复是在IIS中。 我禁用了Windows身份验证并启用了匿名身份验证。
我正在推动自己的nuget服务器。
答案 5 :(得分:0)
我正在运行版本3.1.2。在解决了这个问题一段时间后,以下对我做了帮助:
答案 6 :(得分:0)
对我来说,解决方案是使用最新的Nuget.exe [3.5.0],出于某些奇怪的原因,我有旧的NuGet.exe(2.8.5 [2017版本]),但由于405错误而失败。希望这对某人有帮助。