C# で記述された Windows サービスがあります。最近、CassiniDevを追加して、リモート Web 管理とサービスの監視を可能にしました。ホストされた ASP.NET ページから Windows サービスのデータ レイヤーを操作できないことを除いて、統合は非常にうまくいきました。
関心のあるすべてのものを共通のアセンブリに入れようとしましたが、デバッガーは、同じ名前でパスが異なる 2 つのアセンブリが読み込まれていることを示しています。Cassini は一時フォルダーから ASP.NET を実行するため、使用しているアセンブリは実際には同じプロセスのアドレス空間にある "別のインスタンス" です。
ここで何が起こっているのかわかりません。おそらく、現時点では理解できない「アプリケーションドメイン」の分離に関するものです。
では、Windows サービスと Web サーバーが同じプロセスで実行されている場合、それらを相互に作用させるにはどうすればよいでしょうか? ASP.NET 部分で報告したいサービス部分にステータスがあるとします。これを実現する方法はありますか?共有メモリまたは TCP が頭に浮かびますが、純粋なプロセス内通信にはやり過ぎのように思えます。