UWP (Windows 10) 后台任务 - 错误 HRESULT E_FAIL 已从对 COM 组件的调用返回 (VS2017)
UWP (Windows 10) Background Task - Error HRESULT E_FAIL has been returned from a call to a COM component (VS2017)
我有一个 UWP Windows 10 应用程序,旨在用作 SignalR 客户端。我以前有这个工作,但最近开始收到此错误:Error HRESULT E_FAIL has been returned from a call to a COM component
。不确定发生了什么变化,源代码管理中没有什么奇怪的。当我尝试通过 ApplicationTrigger
触发后台任务时出现。
这是我的代码 App.XML:
private void SignalR()
{
_hubConnection = new HubConnection("http://localhost/hollerhub");
_hubConnection.Credentials = CredentialCache.DefaultCredentials;
_toast = _hubConnection.CreateHubProxy("toast");
_toast.On<string>("broadcastMessage", msg =>
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["toastInfo"] = msg;
var appTrigger = new ApplicationTrigger();
appTrigger.RequestAsync().GetResults(); // <--- This is where the error is thrown
});
_hubConnection.Start();
}
后台任务在应用程序启动时注册,但 ApplicationTrigger
在失败之前未到达我的后台任务代码。它正在正常接收 SignalR 消息。
问题是我在 Windows 10 隐私设置中禁用了此应用程序的后台任务。
系统设置 => 隐私设置 => 后台应用程序
我在后台任务注册期间发现了这一点,因为 BackgroundExecutionManager.RequestAccessAsync()
正在返回 BackgroundAccessStatus.DeniedBySystemPolicy
。
我有一个 UWP Windows 10 应用程序,旨在用作 SignalR 客户端。我以前有这个工作,但最近开始收到此错误:Error HRESULT E_FAIL has been returned from a call to a COM component
。不确定发生了什么变化,源代码管理中没有什么奇怪的。当我尝试通过 ApplicationTrigger
触发后台任务时出现。
这是我的代码 App.XML:
private void SignalR()
{
_hubConnection = new HubConnection("http://localhost/hollerhub");
_hubConnection.Credentials = CredentialCache.DefaultCredentials;
_toast = _hubConnection.CreateHubProxy("toast");
_toast.On<string>("broadcastMessage", msg =>
{
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["toastInfo"] = msg;
var appTrigger = new ApplicationTrigger();
appTrigger.RequestAsync().GetResults(); // <--- This is where the error is thrown
});
_hubConnection.Start();
}
后台任务在应用程序启动时注册,但 ApplicationTrigger
在失败之前未到达我的后台任务代码。它正在正常接收 SignalR 消息。
问题是我在 Windows 10 隐私设置中禁用了此应用程序的后台任务。
系统设置 => 隐私设置 => 后台应用程序
我在后台任务注册期间发现了这一点,因为 BackgroundExecutionManager.RequestAccessAsync()
正在返回 BackgroundAccessStatus.DeniedBySystemPolicy
。