c# - Nuget.Server 可以列出包,但在包安装时出现 404

标签 c# asp.net iis iis-8 nuget-server

所以我有一个 ASP.Net Nuget 服务器在我们网络上的一台机器上运行。我将 .Net 4.6 与 Nuget.Server 版本 2.11.2.0 和 IIS 8 一起使用。

这连接到我们的自动构建系统,因此在成功构建后,包会自动创建并复制到 ~/Packages 目录,当我在浏览器中转到服务器 URL 时,我可以看到启动页面并单击包链接以查看可用的包 XML 页面。如果我将包 URL 放入 Visual Studio 中的 Nuget 设置中,它会列出可用的包,但当我点击“安装”时会显示 404,请参见下图。

请注意,当我尝试使用服务器初始页面上的命令推送包时,它也会出现 404。

我尝试使用 curl 查看路由是否实际可用,我从 api/v2/package 和 nuget/package 得到了 404。 IIS 日志在 http:///api/v2/package//etc 上显示 404... 所以我想我至少会检查该路由是否可用,但它似乎不是。我不明白为什么会这样。

list but fail install

我已经尝试过的东西;

  • nupkg Mime 类型在 IIS 中设置为 application/zip
  • IIS 应用程序池模式设置为集成
  • aspnet_isapi.dll 存在于 .NET 4.5 的 Framework64/Framework 文件夹中
  • runAllManagedModulesForAllRequests 在 Web.config 中设置为 false

我的问题主要围绕几件事;

  • 是否有我可能尚未打开的服务器使用的任何内部端口? (即我已经打开了默认的 Nuget.Server 端口 51702,但我假设 http 请求将在端口 80 或 443 上运行)
  • 除了我已经尝试过的事情之外,还有其他人遇到过类似的问题吗?

最佳答案

现在可以使用了;我不完全确定是什么修复了它,因为我一次做了一些更改。最为显着地;

  • 我从 .NET 4.5 升级到 4.6 并相应地更新了 Nuget.Server,我认为这将路由从 server/nuget/package/{package-id}/{version} 更改为 server/api/v2/package/{package-id}/{version}
  • 我在 Web.config 中将 runAllManagedModulesForAllRequests 更改为 true

关于c# - Nuget.Server 可以列出包,但在包安装时出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41162505/

相关文章:

C# - 索引器在其有意义的应用

c# - 这两者哪个效率更高?

c# - 存储:C# 等同于 PowerShell 命令

asp.net - 分页在报表查看器中不起作用

c# - 在哪里写日志文件?

c# - 维持稳定用户 session 的标准方法是什么?

apache - IIS 和 Apache (WAMP) 运行

asp.net - 如何检测是否在 IIS 7 中启用了 ASP.NET

c# - 通过 .net winform 应用程序连接到 sql server

asp.net - Crystal 报表每页都有动态参数