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()
- URL 没有问题。当您尝试修改 URL 时,您将得到不同的错误
- 服务器上 D:\MyServer\NugetPackages 的权限不是问题,因为我已经对该文件夹设置了完全权限。我也将 packages 文件夹移动到不同的位置(即其他一些外部网络驱动器),但我遇到了同样的问题。
我尝试编译 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
当您在 IIS 10 中创建网站时,默认情况下不允许 PUT 动词。
可以在这里设置:
IIS -> YOUR WebSite -> Request Filtering -> HTTP Verb tab: **Set PUT verb**
这解决了一个问题。
我已将 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()
- URL 没有问题。当您尝试修改 URL 时,您将得到不同的错误
- 服务器上 D:\MyServer\NugetPackages 的权限不是问题,因为我已经对该文件夹设置了完全权限。我也将 packages 文件夹移动到不同的位置(即其他一些外部网络驱动器),但我遇到了同样的问题。
我尝试编译 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
当您在 IIS 10 中创建网站时,默认情况下不允许 PUT 动词。
可以在这里设置:
IIS -> YOUR WebSite -> Request Filtering -> HTTP Verb tab: **Set PUT verb**
这解决了一个问题。