【问题标题】:Nuget.Server can list packages but 404's on package installNuget.Server 可以列出包,但包安装时出现 404
【发布时间】:2016-12-15 10:59:54
【问题描述】:

所以我有一个在我们网络上的机器上运行的 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 ......所以我想我至少要检查一下路由是否可用,但它似乎不是。我不明白为什么会这样。

我已经尝试过的事情;

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

我的问题基本上围绕着几件事;

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

【问题讨论】:

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


    【解决方案1】:

    这正在工作;我不完全确定是什么修复了它,因为我一次做了一些更改。最为显着地;

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

    【讨论】:

    • 谢谢!添加 runAllManagedModulesForAllRequests 为我解决了同样的问题,这让我发疯了!
    • @DavidRice 没问题,很高兴我能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2018-08-30
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多