Nor*_*n H 5 iis-7 iis-7.5 nuget nuget-server
尝试将程序包推送到Windows 2008 R2 Enterprise上IIS 7.5上托管的本地托管的Nuget Server(Nuget.Server程序包)时,我收到(405)Method Not Found错误.
有一个为nuget服务器(被调用的Nuget)配置的专用IIS站点,并绑定到特定端口(81为了好玩).
应用程序池设置为.NET Framework 4.0,并处于集成管道模式.
我知道我可能需要启用PUT和DELETE谓词,但不知道哪个处理程序负责处理Nuget请求.
在集成管道模式下,正确的处理程序是 svc-Integrated-4.0 处理程序。
我通过反复试验以及阅读Codeplex 上 Nuget 服务器的源代码发现了这一点。
这篇关于 ASP.NET 如何处理请求的文章对于理解幕后发生的事情也非常有帮助。
此外,为了使该答案正确,您需要确保应用程序池处于集成管道模式而不是经典模式。
下面列出了需要更改的 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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4762 次 |
最近记录: |