2013-11-26 42 views
16

我已经使用空的web应用程序和nuget服务器包建立了一个私人的nuget饲料。它全部正常工作,我可以从Feed中检索,并且可以使用Nuget包资源管理器发布到私人Feed。 但我不能通过命令行发布 - 它提示输入凭据。我已经在Appsettings中的Web应用程序中设置了ApiKey,并设置了一个简单的密码,并且我尝试将ApiKey添加到push命令中。这提示我输入用户名和密码。 我也尝试了SetApiKey命令,但我得到了相同的行为。 在构建服务器上,我尝试了相同的结果。推送到私人的nuget饲料提示凭据

这里是从构建日志中的错误消息(识别信息x'd出)

nuget pack "C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\Bxxxxxxxs.Web.Http.csproj" -IncludeReferencedProjects -Properties Configuration=Release 
    nuget SetApiKey Bxxxxxxx1 -Source http://tfs12.xxxxxxxrps.com/Nuget 
    nuget push *.nupkg -s http://tfs12.xxxxxxxrps.com/Nuget/ 
    C:\Builds\2\OE Phase II\Common\bin\xxxxxxx.Web.Http.dll 
    1 File(s) copied 
    Attempting to build package from 'xxxxxxx.Web.Http.csproj'. 
    Packing files from 'C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\bin\Release'. 
    Using 'xxxxxxxs.Web.Http.nuspec' for metadata. 
    Found packages.config. Using packages listed as dependencies 
    Successfully created package 'C:\Builds\2\OE Phase II\Common\bin\xxxxxxxs.Web.Http.1.0.0.0.nupkg'. 
    The API Key 'xxxxxxx' was saved for 'http://tfs12.xxxxxxxrps.com/Nuget'. 
    Pushing Bxxxxxxxrs.Data 1.0.0.0 to 'http://tfs12.xxxxxxxrps.com/Nuget/'... 
    Please provide credentials for: http://tfs12.xxxxxxxrps.com/Nuget/ 
    Object reference not set to an instance of an object. 
    UserName: Password: 

回答

9

适用于Windows Server 2012和Nuget.Server 2.8.5

  • 打开IIS管理器
  • 找到解决办法找到你的 “Nuget.Server” 应用
  • 点击右键,选择 “编辑权限”
  • 转到“安全”选项卡

为组“Everyone”添加“写入”权限。

+0

我只是将它标记为答案,因为它修复了我的命令行,可以推送一个包。奇怪的是,包资源管理器已停止工作,推到服务器和我的搜索为什么已经让我回到我原来的问题。因此,现在命令行已修复,但Package Explorer仍然不起作用。 – Noel

+1

如果您想要更安全一点,只需将写入权限添加到不是每个用户的用户。 – Kam

+5

我在使用IIS 7.x的Windows 7上。我必须将“写入”权限添加到以下本地用户:IUSR和IIS_IUSRS –

1

API密钥是用于上载/推动包。看起来您已启用了http代理,您可以通过调用nuget.exe config命令来设置用户名和密码。

一些示例:

的NuGet配置 - 设置HTTP_PROXY = HTTP:// * *。 - 设置HTTP_PROXY.USER =域\用户

nuget.config HTTP_PROXY

http://docs.nuget.org/docs/reference/command-line-reference

+0

提示符不要求代理凭据。它要求存储库凭证。 – dss539

0

而且你使用的NuGet.Server包的版本? NuGet已经发布了它的2.7.2版本。

你可以试试看看null ref异常是否还有责备?谢谢。

0

你会发现this SO answer有帮助的,因为它涵盖了如何在工作站上配置凭据和/或构建服务器,这是需要通过命令行的服务器要求身份验证来推动(如私营饲料。)

API密钥不需要发布。

0

我有这个问题也是一样,我知道这工作过,原来我用用

NuGet.exe update -self 

把它带到2.8.3 NuGet.exe 2.8.1升级,现在能正常工作。

1

这对我有效:网站>身份验证>启用Windows身份验证(我只有默认情况下是匿名),推送将使用您的域帐户,而无需用户输入。