Nuget 服务器问题 post 迁移到 Win 2016

Nuget Server issue post migration to Win 2016

我已将 nuget 存储库从 Win 2008 迁移到 Win 2016。 该服务器的别名:http://xyz.mycompany.com/NugetFeed

除了windows,IIS也不同,在新服务器上是IIS 10。

迁移后,nuget 工作得很好,除了一个功能。我可以通过网络 (http://xyz.mycompany.com/NugetFeed) 或通过 Visual Studio 等浏览包。Visual Studio 可以看到手动创建的包。

唯一的问题是 nuget 推送。

>nuget push FEDivaNET.dll*.nupkg -Source http://xyz.mycompany.com/NugetFeed/ D568CD48-1609-40C9-9A5D-7ADC808129E5 Pushing FEDivaNET.dll.3.41.73.nupkg to 'http://xyz.mycompany.com/NugetFeed/'... PUT http://xyz.mycompany.com/NugetFeed/ NotFound http://xyz.mycompany.com/NugetFeed/ 128ms Response status code does not indicate success: 404 (Not Found). System.Net.Http.HttpRequestException: Response status code does not indicate success: 404 (Not Found). at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() at NuGet.Protocol.Core.Types.PackageUpdateResource.<>c.<PushPackageToServer>b__23_0(HttpResponseMessage response) at NuGet.Protocol.HttpSource.<ProcessResponseAsync>d__181.MoveNext()

我尝试编译 2 个不同的 Nuget.Server 版本:2.14.0 和 3.1.2 ...同样的例外。

在 IIS 中,我很确定我已经设置了与旧服务器相同的设置。我还有 INTEGRATED 管道模式,所以一切都很好。我还尝试通过技术用户等设置身份验证

不确定问题出在哪里,我想我检查了每一个设置。我尝试使用 APIKEY,但不使用 APIKEY。我修改了 Web.config 中的每一个设置,运气不好......

推送nuget包的url类似

http://{server}/{feed}/api/v2/package

所以在你的命令中使用:

nuget push FEDivaNET.dll*.nupkg -Source http://xyz.mycompany.com/NugetFeed/api/v2/package

文档:Publish a package

当您在 IIS 10 中创建网站时,默认情况下不允许 PUT 动词。

可以在这里设置:

IIS -> YOUR WebSite -> Request Filtering -> HTTP Verb tab: **Set PUT verb**

这解决了一个问题。