我已经使用.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(跨域)中,会引发错误。
在这种情况下如何退出?
答案 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