.net core应用程序通过带有跨平台的electronic.net在不同的端口上运行

时间:2018-07-28 10:42:38

标签: node.js .net-core cross-platform asp.net-core-webapi electron.net

我已经使用.NET Core和Electron.NET开发了一个应用程序,并创建了一个登录表单

对于登录,我创建了一个单独的web API项目,并在单击登录按钮时调用了登录API。

当我从应用程序调用API时,它会给出有关“跨源”的错误,因此我需要在该API中注册IP地址和端口,但现在我遇到的问题是.net core应用程序每次都在不同端口上运行。

窗口环境中使用API​​进行呼叫登录时,它会在以下端口提供给我: 8001

Ubuntu 调用相同的API时,它为我提供了端口 35941 。 所以现在我面临一个问题,例如,我们有一个不同的Web API项目,它允许我们在特定端口上调用Web API,但是由于electron.net每次生成的端口不同,我们无法调用该Web API在CORS(跨域)中,会引发错误。

在这种情况下如何退出?

3 个答案:

答案 0 :(得分:1)

Electron.NET中有一个静态类BridgeSettings,该类为您提供端口设置,因此您可以使用它在CORS设置中设置端口。例如:

app.UseCors((builder) => builder.WithOrigins($"http://localhost:{BridgeSettings.WebPort}"));

答案 1 :(得分:1)

最快的解决方案是在dotnet启动之前使用定义的静态端口(ASPNETCORE_URLS=http://+:3333)设置环境变量。跨平台设置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#development

答案 2 :(得分:0)

从Electron.NET的 5.22.14 版本开始-是否可以在 electron.manifest.json 文件中定义单独的端口。

清单文件的示例: https://github.com/ElectronNET/Electron.NET/blob/master/ElectronNET.WebApp/electron.manifest.json

在此处添加以下条目:
“ aspCoreBackendPort”:8080