所以我有一个 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 上运行)
- 除了我已经尝试过的事情之外,还有其他人遇到过类似的问题吗?
最佳答案
现在可以使用了;我不完全确定是什么修复了它,因为我一次做了一些更改。最为显着地;
- 我从 .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/