Невозможно запустить Кестрел. Не удалось привязать адрес к уже используемому адресу.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно запустить Кестрел. Не удалось привязать адрес к уже используемому адресу.

Сообщение Anonymous »

Я хочу запустить основное приложение .net из созданного мной API, который также есть в .Net Core.

Я добавил UseUrls() функцию в файл Program.cs, чтобы он использовал порт, который я хочу использовать. Вот как выглядит мой Program.cs того другого модуля.

public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.UseUrls("http://*:50003")
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
}
)
.UseDefaultServiceProvider(options =>
options.ValidateScopes = false)
.Build();
}


Поэтому, когда я открываю CMD, где находится этот модуль, и набираю dotnet run, он запускает приложение на http://localhost:50003 >, и это нормально, потому что это порт, с которого я хочу начать.

Но мне нужно запустить это приложение из этого API. А вот код, который я написал для команды dotnet run:

public IActionResult RunPackage(int id)
{
try
{
var workingDirectory = 'here goes the path of the directory of this module that i want to start running';

var processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = "dotnet";
processStartInfo.Arguments = "run";
processStartInfo.WorkingDirectory = workingDirectory;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = false;
processStartInfo.CreateNoWindow = true;
var process = new Process();
process.StartInfo = processStartInfo;
process.Start();
var reader = process.StandardOutput;
var output = reader.ReadToEnd();

return Ok();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}


Но когда я запускаю его, эта выходная переменная возвращает ошибку, о которой говорится

Unable to start Kestrel.
System.IO.IOException: Failed to bind to address http://127.0.0.1:4221:
address already in use


И я не знаю, почему оно пытается запустить приложение с портом 4221, хотя в Program.cs написано, что оно использует порт 50003.

Таким образом, та же команда dotnet run работает нормально, если я пишу вручную в CMD, и не работает должным образом, если я печатаю свой код.< /p>


"Использование настроек запуска из C:\Users\StarTech\Desktop\Actibook Actibook\actibook-backend\ServerCore\TimeFrame.Actibook.WebService\ wwwroot\Packages\2018-6-Friday031203SampleConverter\Properties\launchSettings.json...\r\ncrit: Microsoft.AspNetCore.Server.Kestrel[0]\r\n Невозможно запустить Kestrel.\r\nSystem.IO.IOException : Не удалось привязаться к адресу http://127.0.0.1:4221: адрес уже используется ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.AddressInUseException: Ошибка -4091 Адрес EADDRINUSE уже используется - --> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: ошибка -4091 Адрес EADDRINUSE уже используется\r\n в Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking. LibuvFunctions.ThrowError(Int32 statusCode)\r\n в Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.tcp_getsockname(дескриптор UvTcpHandle, SockAddr& addr, Int32& namelen)\r\n в Microsoft.AspNetCore. Server.Kestrel.Transport.Libuv.Internal.Networking.UvTcpHandle.GetSockIPEndPoint()\r\n в Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.ListenTcp(Boolean useFileHandle)\r\n в Microsoft. AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.CreateListenSocket()\r\n в Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.c.b__8_0(прослушиватель прослушивателя)\r\ n в Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.CallbackAdapter1.c.b__3_1(Object callback, Object state)\r\n at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.DoPostWork()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.ListenerPrimary.d__15.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransport.d__20.MoveNext()\r\n --- End of inner exception stack trace ---\r\n at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransport.d__20.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.c__DisplayClass23_01.d.MoveNext()\r\n --- Конец трассировки стека из предыдущего места, где было создано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo. Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)\r\n в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.d__5.MoveNext()\r\n - -- Конец внутренней трассировки стека исключений ---\r\n в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.d__5.MoveNext()\r\n --- Конец трассировки стека из предыдущего места, где исключение было создано ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)\r\n в Microsoft.AspNetCore.Server .Kestrel.Core.Internal.AddressBinder.d__6.MoveNext()\r\n --- Конец трассировки стека из предыдущего места, где было создано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw( )\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача)\r\n в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.d__7.MoveNext()\r\n--- Конец трассировки стека из предыдущего места, где было создано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)\r \n в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.d__2.MoveNext()\r\n --- Конец трассировки стека из предыдущего места, где было создано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)\r\n в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.d__0. MoveNext()\r\n --- Конец трассировки стека из предыдущего места, где было создано исключение ---\r\n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n в System.Runtime.CompilerServices .TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task Task)\r\n в Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.d__23`1.MoveNext()\r\n"

launchSettings.json содержит:

{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:60924/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"SampleConverter": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:60925/"
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/511 ... ady-in-use
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»