Я пытаюсь разработать функцию для ping ПК в сети в приложении .Net Core..Net Core Ping Class - System.Net.Ping или System.Net.Utilities
В соответствии с этим StackOverflow, он говорит, что мне нужно использовать System.Net.Utilities NuGet.
Мой project.json
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
},
"BundlerMinifier.Core": "2.2.306",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
"Microsoft.AspNetCore.Routing": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Dapper": "1.50.2",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final",
"Microsoft.AspNetCore.Session": "1.1.0",
"AutoMapper": "5.2.0",
"Microsoft.AspNetCore.Mvc": "1.1.1",
"System.Net.Utilities": "4.0.0-beta-23516"
},
"tools": {
"Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"BundlerMinifier.Core": "2.2.306",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.1.0-preview4-final",
"imports": [
"portable-net45+win8+wp8+wpa81"
]
}
},
"frameworks": {
"netcoreapp1.1": {
"imports": [
"dotnet5.6",
"portable-net45+win81"
]
}
}
}
Он добавил библиотеку, я мог бы построить без каких-либо ошибок. Но во время выполнения, я получаю эту ошибку:
FileNotFoundException: Could not load file or assembly 'System.Net.Utilities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
Unknown location
ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
Однако, если я использую System.Net.Ping NuGet, тот же код работает без каких-либо ошибок, и я мог пинговать хост.
Согласно VS2015 Intellisense, предлагается добавить пакет System.Net.Utilities, который не работает.
Я смущен, и я не мог понять, почему я получаю эту ошибку при использовании System.Net.Utilities. Обычно, если он несовместим с .Net Core, мы сразу получили исходную ошибку/неудачную компиляцию. Но на этот раз, это совершенно другое, и я не мог просматривать любую страницу вообще.
Если в случае, вот мой код Пин ...
public async Task<double> PingPC(string host, int echoNum)
{
long totalTime = 0;
int timeout = 120;
Ping pingSender = new Ping();
for (int i = 0; i < echoNum; i++)
{
var reply = await pingSender.SendPingAsync(host, timeout);
if (reply.Status == IPStatus.Success)
{
totalTime += reply.RoundtripTime;
}
}
return totalTime/echoNum;
}
Не могли бы вы предложить то, что я делаю неправильно? Благодарю.