前提・実現したいこと
WindowsサービスでTCP通信ソケットサーバーの実装を行っています。
サービスが起動したことや、各種通信の受信時にToastNotificationを用いて通知したいと考えているのですが、ToastNotification通知発行時に「アクセスが拒否されました」エラーが発生します。
ビルドエラーは特に発生していません。
そもそもwindowsサービスからToastNotificationによる通知は実装不可能なのでしょうか?
発生している問題・エラーメッセージ
サービスを開始できません。System.UnauthorizedAccessException: アクセスが拒否されました。 (HRESULT からの例外:0x80070005 (E_ACCESSDENIED)) 場所 Windows.UI.Notifications.ToastNotifier.Show(ToastNotification notification) 場所 Microsoft.Toolkit.Uwp.Notifications.ToastNotifierCompat.Show(ToastNotification notification) 場所 /_/Microsoft.Toolkit.Uwp.Notifications/Toasts/Compat/ToastNotifierCompat.cs:行 34 場所 Microsoft.Toolkit.Uwp.Notifications.ToastContentBuilder.Show(CustomizeToast customize) 場所 /_/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs:行 430 場所 Microsoft.Toolkit.Uwp.Notifications.ToastContentBuilder.Show() 場所 /_/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs:行 414 場所 obi_socket_server.obi_socket_server.OnStart(String[] args) 場所 XXXXXX\socket_server.cs:行 43 場所 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
該当のソースコード
C#
1 public partial class socket_server : ServiceBase 2 { 3 4 public socket_server() 5 { 6 InitializeComponent(); 7 8 } 9 10 protected override void OnStart(string[] args) 11 { 12 new ToastContentBuilder() 13 .AddArgument("action", "viewConversation") 14 .AddArgument("conversationId", 9813) 15 .AddText("ソケットサーバー起動") 16 .Show(); 17 //.AddText(dns_server_name).Show(); 18 } 19 20 21 22 protected override void OnStop() 23 { 24 } 25 } 26
試したこと
サービスの実行ユーザーを.\Administratorに設定して実行しましたがダメでした。
補足情報(FW/ツールのバージョンなど)
開発ツール:Visual Studio2019
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/24 04:51