我有一个使用电子的 Blazor Web 应用程序。我有一个运行配置文件,仅在 IIS 上运行应用程序,另一个使用电子。
在我的 Startup 类中,我调用了一个任务来打开一个电子窗口,但是当我使用 IIS 配置文件启动应用程序时,这个任务会无限运行。我知道在这种情况下没有电子应用程序,Web应用程序没有崩溃,但任务只是继续运行而不是抛出异常或离开。
这种行为正确吗?如果是,当应用程序是否有电子时,我该如何区分?
这些是我的 launchSettings.json 上的运行配置文件:
"Electron.NET App": {
"commandName": "Executable",
"executablePath": "electronize",
"commandLineArgs": "start /dotnet-configuration debug",
"workingDirectory": "."
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
这是我用来在 Startup 类上测试初始化电子的任务状态的代码:
var electronHostBuilderTask = Task.Run(async () =>
{
var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
{
WebPreferences = new WebPreferences() { ContextIsolation = true, NodeIntegration = false },
Width = 1152,
Height = 940,
Show = false,
Frame = false,
});
await browserWindow.WebContents.Session.ClearCacheAsync();
browserWindow.OnReadyToShow += () => browserWindow.Show();
browserWindow.SetTitle("Sequencer");
ElectronHostService.ApplicationWindow = browserWindow;
});
while (!electronHostBuilderTask.IsCompleted)
{
}