質問: 宜しくお願いします。 実行環境:Windows10 現在 1.C++、Win32APIにて開発したサービスにて共有メモリを生成 2.C#にて開発したアプリケーションにて共有メモリを読み込む というシステムを構築しています。 具体的には 1.にてCreateFileMappingを使用して共有メモリ生成 2.にてMemoryMappedFile.OpenExistingを使用して共有メモリを読み込む です。 質問ですが、1.をサービスとして登録、起動し、共有メモリが生成出来ていることまでは確認したのですが、2.のアプリからアクセスしようとすると、MemoryMappedFile.OpenExistingにて、FileNotFoundExceptionが発生してしまっている状況です。 (1.のサービス管理マネージャと通信する部分をコメントしアプリとして実行した場合は問題なく2.で読み込めます) 1.、2.両方の共有メモリの名前にGlobal\を付加することで動く事は確認できたのですが、理由あって2.のアプリを修正する事は出来ず、1.の修正のみで済む方法を探しています。 1.をこう修正すればよい、1.をサービスを登録する際にこうすれば良い等、ご存知の方がいらっしゃいましたらご教示頂ければ幸いです。 また、出来ない場合、その理由が記述されている公式ページ(MSDN等)をご教示頂ければ幸いです。 なお、1.はサービスとして登録が必須、同じく理由あってスタートアップからの起動はできません。 1.の登録について、フリーのツール等の使用は不可です。 (現在はsc createにて登録しています) 以上、よろしくお願いいたします。
回答: 詳しくないので的外れかもしれませんが、サービスの実行アカウントとアプリを実行するアカウントが異なるのであれば、同一アカウントで動作するようにしてみてはどうでしょうか