我试图将FluentValidation添加到我的asp.net核心项目中。 最初我想使用Nuget FluentValidation.AspNetCore/6.4.0-beta9,这个包含取决于Nuget FluentValidation/6.4.0-beta9。所以我将FluentValidation添加到project.json中。
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
...,
"FluentValidation": "6.4.0-beta9"
},
....
}
这会导致包恢复失败,并显示以下输出。
log : Restoring packages for C:\Users\asdf\devel\BTnetCorePoc\NcCqrsPoc\src\NcCqrsPos.Web.Commands\project.json...
log : Retrying 'FindPackagesByIdAsyncCore' for source 'http://10.0.10.49/NugetServer/nuget_error/FindPackagesById()?id='FluentValidation''.
log : An error occurred while sending the request.
log : The operation timed out
log : Retrying 'FindPackagesByIdAsyncCore' for source 'http://10.0.10.49/NugetServer/nuget_error/FindPackagesById()?id='System.Text.RegularExpressions''.
log : An error occurred while sending the request.
log : The operation timed out
....
error: Failed to retrieve information from remote source 'http://10.0.10.49/NugetServer/nuget_error/FindPackagesById()?id='FluentValidation''.
error: An error occurred while sending the request.
error: Failed to retrieve information from remote source 'http://10.0.10.49/NugetServer/nuget_error/FindPackagesById()?id='System.Text.RegularExpressions''.
error: An error occurred while sending the request.
所以它导致任何类型的TimeOut,我真的不太了解nuget包发布是如何工作的。超时在我看来有一个服务器不可用或者像那样,但上面链接的nuget包页面运行良好(但我认为这只是一个索引页面)。并且ip 10.0.10.49似乎是用于恢复包的wierd ip。我是否可能错过在vs Studio中配置任何nuget源路径? (在写这个问题时我会想到这一点,我稍后会检查)
要使用FluentValidation.AspNetCore,我至少需要FluentValidation 6.4.0-beta1的版本。所以我尝试了大多数版本
FluentValidation 6.4.0-beta1 至 FluentValidation 6.4.0-beta9 (我的目标)
并且每次尝试都会遇到相同的超时错误(超时时间需要几分钟,我不知道如何停止,恢复过程)
之后我试图恢复我无法使用的早期版本的FluentValidation (FluentValidation.AspNetCore至少需要FluentValiedation 6.4.0-beta1),我检查了nuget还原是否适用于较旧且稳定的FluentValidation。我尝试了以下版本:
FluentValidation 6.2.1 (最新稳定版)
FluentValidation 6.2.1-beta1
FluentValidation 6.3.3-alpha
FluentValidation 6.3.4-alpha
恢复这些版本效果很好,所以我认为错误不能是我机器上任何一种错误配置的VS.那么问题出在哪里呢?接下来的步骤应该是什么?之后我创建了FluentValidation Github Repo Issue。
答案 0 :(得分:0)
就像JeremySkinner在FluentValidation Github Issue中所说的那样。我删除了在VS2015中配置的其他已配置的Package Source(工具 - >选项 - > Nuget Packager Manager-> Packager来源:取消激活我的addidional自定义10.0.10.49/NugetServer->OK)
立即尝试恢复 FluentValidation 6.4.0-beta9 效果很好。
所以有一个奇怪的行为,我无法弄清楚为什么在定义额外的Package Sources时会发生这个问题。我只记得这一点。我不需要额外的Package Source,所以只需停用它,适用于该问题。