.net core Приложение запускается с другим портом с Electron.net с кросс-платформенным

Я разработал приложение с использованием.NET Core и Electron.NET и создал форму входа.

Для входа в систему я создал отдельный web API проект и вызвать API входа по нажатию кнопки входа.

Когда я вызываю API из приложения, он выдает ошибку о "Cross-Origin", поэтому мне нужно зарегистрировать IP-адрес и порт в этом API, но сейчас я сталкиваюсь с такой проблемой, как .net core Приложение запускается каждый раз на другом порту.

Хотя вход в API из оконной среды дает мне порт ниже:8001

При вызове того же API из Ubuntu он дает мне порт 35941. Так что теперь я сталкиваюсь с такой проблемой, как, у нас есть другой проект для веб-API, и он позволяет нам вызывать веб-API на конкретном порту, но из-за каждого разного порта, генерируемого Electron.net, мы не можем вызвать веб-API в CORS (перекрестное происхождение) и выдает ошибку.

Как я могу отказаться от этой ситуации?

2 ответа

Начиная с версии 5.22.14 Electron.NET - можно ли определить отдельный порт в файле electronic.manifest.json.

Пример файла манифеста: https://github.com/ElectronNET/Electron.NET/blob/master/ElectronNET.WebApp/electron.manifest.json

Добавьте сюда следующую запись:
"aspCoreBackendPort": 8080

Самое быстрое решение - установить переменную среды со статическим портом (ASPNETCORE_URLS=http://+:3333) определено до запуска dotnet. Отличный пакет узлов для установки переменных ENV кросс-платформенный cross-env - https://www.npmjs.com/package/cross-env

Это может быть первым из многих параметров запуска, которые вы хотите изменить. Вы должны настоятельно рассмотреть возможность создания launchsettings.json файл с этими конфигурациями. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.1

Есть статический класс BridgeSettings в Electron.NET, который дает вам настройки порта, чтобы вы могли использовать его для установки порта в настройках CORS. Например:

app.UseCors((builder) => builder.WithOrigins($"http://localhost:{BridgeSettings.WebPort}"));
Другие вопросы по тегам