【问题标题】:NuGet.Server Prompts for Credentials Only After Publishing to IISNuGet.Server 仅在发布到 IIS 后提示凭据
【发布时间】:2015-07-07 00:50:55
【问题描述】:

我正在尝试设置一个本地托管的 NuGet 服务器来托管包。我正在使用 NuGet.Server,并按照此处的说明进行操作:http://docs.nuget.org/create/hosting-your-own-nuget-feeds#user-content-creating-remote-feeds。它们实际上归结为“创建一个空的 Web 应用程序项目,安装 Nuget.Server,然后运行/发布。”

当我通过 Visual Studio 运行应用程序时,推送新包没有问题:

C:\dev>nuget push .\Test.0.1.nupkg -s http://localhost:50794/ simple
Pushing Test 0.1 to 'http://localhost:50794/'...
Your package was pushed.

但是,一旦我将其发布到本地 IIS,就会开始提示输入用户名和密码:

C:\dev>nuget push .\Test.0.1.nupkg -s http://localhost/nuget simple
Pushing Test 0.1 to 'http://localhost/nuget'...
Please provide credentials for: http://localhost/nuget/
UserName:

我没有像应用程序前面的代理那样发生任何奇怪的事情;它只是在我的本地机器上作为 IIS 中的普通 Web 应用程序运行。发布时,我使用一个简单的 Web 部署发布,将服务器指定为 localhost,将站点名称指定为 Default Web Site\Nuget,并将目标 URL(据我所知,它只是在成功时在浏览器中打开该 URL)为本地主机/nuget。

服务器肯定已启动并正常运行:

我尝试过的事情没有改变:

  • 禁用 API 密钥要求
  • 使用 Visual Studio 中的发布配置来匹配发布
  • 删除 Debug 和 Release 特定的 Web.Config 文件(无论如何它们是相同的)
  • 授予所有用户对存储包目录的更多权限(我不认为是这样,但我还是尝试了)

我也找到了this,但我对此感到困惑。我没有创建任何用户,当它说它向匿名用户授予角色时,我不知道这意味着什么。 (这可能只是我缺乏经验。)据我所知,没有配置身份验证。

请注意,我已经看过this question。我考虑过这是否是重复的,但那篇文章中的细节是粗略的。在我看来,这可能是同一个问题,但我不想对它做出足够的假设来开始尝试将这种详细程度编辑到问题中。我相信这会改变帖子的含义太多;鉴于我想展示的细节有很大不同,我不认为这是重复的。

【问题讨论】:

    标签: asp.net authentication nuget-server


    【解决方案1】:

    检查您的应用程序池 - 它可能设置为使用 NetworkIdentity 而您希望它使用 ApplicationIdentity?

    【讨论】:

    • 谢谢,但它已设置为 ApplicationPoolIdentity。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2023-03-30
    相关资源
    最近更新 更多