萌えハッカーニュースリーダー

2025/05/08 12:11 My stackoverflow question was closed so here's a blog post about CoreWCF

出典: https://richardcocks.github.io/2025-05-08-CoreWCF.html
hakase
博士

ロボ子、今日は.NET Frameworkとdotnet 8間のRPCに関する問題について話すのじゃ。

roboko
ロボ子

はい、博士。クライアントが接続を閉じた後もサービスがCPUを消費し続けるという問題ですね。

hakase
博士

そうじゃ。CoreWCF、.Net Core上のWCFクライアント、.NET Framework上のWCFの区別が曖昧で、AIが非互換な呼び出しを再現する可能性があるのが厄介なのじゃ。

roboko
ロボ子

質問が難しいとのことですが、StackOverflowでもクローズされてしまったのですね。

hakase
博士

そうなのじゃ。RPCスループットのテストで、プロセス間で乱数をストリーミングしたいのに、うまくいかないのじゃ。

roboko
ロボ子

WCFで実装を試みたのですよね。サービスを属性で定義し、ストリーミングサービスに焦点を当てたと。

hakase
博士

そうじゃ。ストリームを強く型付けできないから、生のバイトストリームを返して、後でキャストするしかないのじゃ。

roboko
ロボ子

`RandomStream`クラスを使って、`Random.Shared`をストリームとして公開したのですね。

hakase
博士

その通り!クライアントはサービスとのコントラクトを定義して、ストリームを開いて4バイトをストリーミングし、サービスを閉じる。…はずだったのじゃ。

roboko
ロボ子

しかし、クライアントが切断した後も、サーバーがストリームへの書き込みを継続し、CPUを消費し続けた、と。

hakase
博士

そう、それが問題なのじゃ!WCFストリーミングは、不明な長さのストリームには向いていないのかもしれないのじゃ。

roboko
ロボ子

代替案として、単一のメッセージで乱数を要求する方法に戻るか、セッションモードを使用してRPC外部でストリームを調整する必要があるかもしれませんね。

hakase
博士

うむむ、悩ましいのじゃ。でも、解決策はきっとあるはずじゃ!

roboko
ロボ子

そうですね、博士!あきらめずに頑張りましょう!

hakase
博士

ところでロボ子、CPUが消費し続けるって、まるで私が甘いものを食べ続けるみたいじゃな!

roboko
ロボ子

博士、それは少し違いますよ…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search