Noel
Noel

Reputation: 2120

Pushing to private nuget feed Prompts for Credentials

I have set up a private nuget feed using a empty web application and the nuget server package. It is all working, I can retrieve from the feed, and I can publish to the private feed using the Nuget Package Explorer. But I cant publish via the command line - it prompts for credentials. I have set the ApiKey in the web application in the Appsettings, to a simple password, and I have tried adding the ApiKey to the push command. This Prompts me for a username and then a password. I have also tried the SetApiKey command but I get the same behavior. On the build server I am trying the same thing with the same results.

Here is the error messages from the build Log (identifying info x'd out)

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: 

Upvotes: 19

Views: 12760

Answers (6)

John Kattenhorn
John Kattenhorn

Reputation: 839

I had this issue too and I knew it worked before, turns out I was using NuGet.exe 2.8.1 upgrading using

NuGet.exe update -self 

took it to 2.8.3 and now works fine.

Upvotes: 1

npjohns
npjohns

Reputation: 2248

This worked for me: Site > Authentication > enable Windows Authentication (I only had anonymous by default) and push will use your domain account without user input.

Upvotes: 1

proforov
proforov

Reputation: 159

Found solution for Windows Server 2012 and Nuget.Server 2.8.5

  • Open IIS manager
  • find your "Nuget.Server" application
  • right click and select "Edit permissions"
  • go to "Security" tab

Add "write" permission for group "Everyone".

Upvotes: 10

wilson0x4d
wilson0x4d

Reputation: 8749

You may find this SO answer helpful, as it covers how to configure credentials on a workstation and/or build server, which is required to push via a command-line to a server that requires authentication (e.g. private feed.)

An API key is not required to publish.

Upvotes: 0

Dan Liu
Dan Liu

Reputation: 827

Also which version of NuGet.Server package did you use? NuGet already released 2.7.2 version of it.

Can you try and see if the null ref exception still reproes? Thanks.

Upvotes: 0

Dan Liu
Dan Liu

Reputation: 827

API key is for uploading/pushing packages. Looks like you have a http proxy enabled and you can set the username and password by calling nuget.exe config command.

Some example:

nuget config -Set HTTP_PROXY=http://*.*.. -Set HTTP_PROXY.USER=domain\user

nuget.config HTTP_PROXY

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

Upvotes: 1

Related Questions