Visual Studio 2017、.NET 4.5でシンプルなWCFサービスを作成しました。 (新しい項目の追加 - > WCFサービス)。 web.config
を変更し、aspNetCompatibilityEnabled
をtrue
に設定しました。したがって、サービスはASP.NET互換モードで実行されています。aspNetCompatibilityEnabledがfalseに設定されているとWCF OneWayサービスが遅くなる
[OperationContract(IsOneWay = true)]
void DoWork();
実装は次のようになります:期待のように、この作品
public void DoWork()
{
var threadId = Thread.CurrentThread.ManagedThreadId;
Debug.WriteLine("Starting..." + threadId);
Thread.Sleep(TimeSpan.FromSeconds(30));
Debug.WriteLine("Finished..." + threadId);
}
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
サービスは、1つのOneWay
の方法があります。リクエストを送信し、すぐに返信せずに返信することができます。私は多くのリクエストを送信し、すぐに戻ってきます。
私はaspNetCompatibilityEnabled="false"
を変更し、サービスクラスに
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.NotAllowed)]
を設定する場合は、サービスが遅くなります。それは3つの要求しか処理できず、4番目の要求はただ待つだけです。サービスはすぐに答えなくても返されません。それは一度に3つの要求しか処理できないようです。
何がこの現象について説明していますか?すべての設定がデフォルトです。web.config
に特別な設定はありません。
の下に記載されている迅速なサービスであり、それが偽 – BipinR
はい、まさに、それがポイントだにaspNetCompatibilityを設定する前に、3つの以上の要求を処理しました。 –