在推送或删除包时,Nuget Server以(405)方法不允许响应

时间:2013-01-10 16:16:04

标签: iis-7 iis-7.5 nuget nuget-server

尝试将软件包推送到Windows 2008 R2 Enterprise上IIS 7.5上托管的本地托管的Nuget Server(Nuget.Server软件包)时,我收到了(405)Method Not Found错误。

为nuget服务器(Called Nuget)配置了一个专用的IIS站点并绑定到特定端口(81为了好玩)。

应用程序池设置为.NET Framework 4.0并处于集成管道模式。

我知道我可能需要启用PUT和DELETE谓词,但不知道哪个处理程序负责处理Nuget请求。

6 个答案:

答案 0 :(得分:4)

在集成管道模式下,正确的处理程序是svc-Integrated-4.0处理程序。

我通过反复试验和阅读source code of the Nuget Server on Codeplex找到了这一点。

This article on how ASP.NET processes your requests也非常有助于理解幕后发生的事情。

此外,要使此答案正确,您需要确保应用程序池处于集成管道模式,而不是经典模式。

下面列出了需要更改的Web.config的相关部分,特别是现在支持的动词列表。

<system.webServer>
    <handlers>
        <remove name="svc-Integrated-4.0" />
        <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
        <add name="svc-Integrated-4.0" path="*.svc" verb="GET,PUT,POST,DELETE,DEBUG" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
</system.webServer>

答案 1 :(得分:3)

<remove name="WebDAVModule" />添加到system.webServer/modules对我来说很好。

答案 2 :(得分:2)

我刚遇到这个问题。虽然大多数错误与某些配置更改有关,但值得一提的是,如果您只指定主机名而不是网址,则会发生此错误。

错误:
nuget push MyPackage.1.0.nupkg -Source nuget.company.org -ApiKey ...

右:
nuget push MyPackage.1.0.nupkg -Source http://nuget.company.org -ApiKey ...

愚蠢的错误

答案 3 :(得分:1)

WebDAV也是推送包的问题,​​如disable WebDAV所述,您可以通过web.config禁用webdev。

还要确保应用程序池的IIS用户对nuget服务器文件夹结构中的Packages文件夹具有WRITE权限

最后,请确保您已指定api密钥,或添加appsettings密钥

<add key="requireApiKey" value="false" />

答案 4 :(得分:0)

对于其他任何从搜索引擎登陆的人来说,他们遇到405错误但没有运行他们自己的Nuget服务器:405错误的另一个原因只是一个过时的Nuget.exe。检查nuget.exe上的版本并进行更新。

答案 5 :(得分:-2)

经过几次尝试

Handler Mappings > ExtensionlessUrl-Handler-ISAPI-4.0_64bit > Verbs > Check "All verbs"
Handler Mappings > ExtensionlessUrl-Handler-ISAPI-4.0_32bit > Verbs > Check "All verbs"