数時間の非常識なテストの後、同じ IP クラスの 2 つのホストから、Web サービスの最初の実行時間を最小限に抑えることができました (300 ミリ秒未満)...
同じプロセスからの後続の呼び出しが非常に高速であるよりも、最初の Web サービス呼び出しで最初に 2 ~ 3 秒の初期遅延が発生しました。
私の場合の遅延を理解するための鍵は、クライアントが WEB PROXY を処理する方法でした!!
これは、app.config ファイルの新しいバインディングです。
<basicHttpBinding>
<binding name="CreateContextSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="01:00:00" sendTimeout="01:00:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="16777216" maxBufferPoolSize="524288" maxReceivedMessageSize="16777216"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="false">
<readerQuotas maxDepth="32" maxStringContentLength="1048576" maxArrayLength="16384"
maxBytesPerRead="65536" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
インターネットに透過的に接続するために、トランスポート チャネルは初期化時にプロキシ構成を検出する必要があるため、最初の webcall の実行はかなり遅くなると思います。これは通常、イントラネット環境では必要ありません。したがって、これらのバインド設定を変更して、デフォルト プロキシ (エクスプローラー設定から自動的に検出されます) の使用を回避しました。
bypassProxyOnLocal="false"
useDefaultWebProxy="false"
最初の通話の接続時間が大幅に短縮されました。お役に立てれば。