サーバー上で小さなコンソール サービスを実行しており、そのエンドポイントを Azure Service Bus 名前空間に公開しています。ストリーミング モードで webHttpRelayBinding を使用しています。ここにあるテストのためだけにマイクロソフトのサンプルを使用しています: http://code.msdn.microsoft.com/windowsazure/Relayed-Messaging-Bindings-a6477ba0#content。
サービス バスの名前空間に接続し、サービス インターフェイスを呼び出す別のコンピューターでコンソール アプリ クライアントを実行しています。サンプル呼び出し GetImage を使用しています。そのメソッドで行っているのは、5MB の PDF ファイルのストリームを返すことだけです。
私のサービスをホストしているサーバーには、20MB のアップロード/ダウンロード ファイバー回線があります。それは広く開いており、非常に高速です。ブラウザを開いてサービスにアクセスすると、 https : //namespace.servicebus.windows.net/Image/GetImage で 5MB の PDF ファイルが正しくプルされますが、ファイルは毎秒 90K から 100K でしかストリーミングされません。最初は、サーバーからのアップロード速度によって制限されていると思っていましたが、正当化するのが難しい 20MB のファイバーを上下に使用していました。そこで、わずか 750K のアップロード速度でサービスを自宅のコンピューターに移動しました。サービスを起動すると、リレーがホストされます。次に、私の友人が自宅のブラウザから同じ 5MB の PDF ファイルを取得するためにサービスにアクセスしたところ、1 秒あたり 90K から 100K でファイルが転送されました。
これがなぜなのか、私は困惑しています。誰かがここで私に洞察を与えることができますか? 必要なすべてのコードをお見せできますが、問題を完全に説明し、私が使用しているマイクロソフトのサンプルを参照するだけで十分だと思いました。
前もって感謝します。