0

我有一个使用电子的 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)
{
}
4

0 回答 0