これについてかなりの量の調査を行いましたが、何が問題なのかわかりません。公式ドキュメント (サーバー API とプラグイン) は、ここではあまり役に立ちません。
私のソリューションは次のようにレイアウトされています。
- XSocketsControllers
- 長期実行コントローラー A と標準コントローラー B を定義します。
- WebServer (XSocketsControllers を参照)
ドキュメントには、XSockets が bin (アセンブリがコピーされている場所) の下で興味のあるものをすべて検出すると記載されているため、Web.Config には次のように記述されています。
<add key="XSockets.PluginCatalog" value=""/>
<add key="XSockets.PluginFilter" value="*.dll"/>
ブートストラップは正常に実行され、サーバー コンテナーをデバッグすると、IXBaseServerContainer の XSocketPlugins プロパティにコントローラー A と B が含まれていることがわかりますが、ブラウザーからコントローラー B に接続しようとすると、たとえば、接続は確立されますが、フレームは「ロードされたプラグインにハンドラー名が見つかりませんでした」と表示されます。「汎用」コントローラーに接続すると、正常に動作します。
ここで何が欠けていますか?
また、コントローラの検出はどのように機能しますか? XSockets.Sample.StockTicker の例をいじってみたところ、「/Stock」がヒットしていることに気付きましたが、その正確な名前のコントローラーはありません。StockController と StockTickerController クラスがあります。