发布到自托管NuGet服务器时如何修复401身份验证错误

时间:2013-01-24 21:37:54

标签: authentication nuget nuget-server

我在内联网上关注了这些instructions to host a NuGet Server(版本2.2.2)。它在列出包并在VS 2012中检索它时效果很好。但是当我使用Nuget Package Explorer创建一个包并尝试发布它时,系统会提示我提示输入凭据的Windows安全性对话框。无论我输入什么凭据,它都会重新提示我输入用户名和密码,并返回401身份验证错误。为什么NuGet服务器会提示我输入Windows凭据?如何摆脱它?它只用于发布而不是其他任何内容。

4 个答案:

答案 0 :(得分:4)

除了Packages文件夹的权限配置之外,还有一件事。在我的情况下,我必须使用像

这样的URL
http://<server>/<nuget_virtual_dir>/api/v2/package/ 

推动。这是我案件中唯一的解决方案。

答案 1 :(得分:2)

使用NuGet push时,需要在NuGet服务器URL之后放置/ api / v2 / package(例如http://myhost/myNuGetServer/api/v2/package

如果您使用NuGet用户界面(NuGet包资源管理器),您只需要放置服务器URL而不是URL(示例http://myhost/myNuGetServer/

还要注意Web.config中的apikey配置,并在NuGet push中使用它!

答案 2 :(得分:1)

我认为找到了一个解决方案(至少对我的问题而言):

我放弃了Nuget问题,我专注于ISS 401错误。然后我将用户“IIS AppPool \ DefaultAppPool”的权限授予应用程序的根目录(或使用该应用程序的AppPool,在我的情况下为“ASP.NET v4.0”)。然后它像魅力一样工作!。

更多信息(以及对此问题的详细解释):ApplicationPoolIdentity in IIS7 401 errors

答案 3 :(得分:0)

您可能会发现this SO answer有用,因为它涵盖了如何在发布工作站(或构建服务器)上配置凭据,但在任何一种情况下都是准确的信息。)