2008-09-15 22 views
0

フェデックスの出荷値を取得するために1年ほど前にASP.NETスクリプトを購入しました。 HttpWebRequestを使用してFedExサーバに渡されたXML文字列を作成し、生のXMLを解析します。スクリプトの平均応答時間は約900ミリ秒です。ウェブサービスのパフォーマンスを理解しようとしています

先日、私はFedExデベロッパーセンターをぶち壊して、Webサービスを使用するためのC#コードサンプルを提供していることを発見しました。コードとWSDLファイルを使用してプロジェクトを構築しましたが、平均応答時間が約2.5秒であることに驚きました。

誰かが私のスピードの違いを理解する助けになることができますか?それをより速くする方法はありますか?私はWebサービスを使用している経験がゼロです。

ありがとうございました。

+0

スクリプトを見ることができれば助けになります。 – Landon

答えて

1

Webサービスでは、検証と「SOAPエンベロープ」と呼ばれる何らかのオーバーヘッドが追加されているため、XML over HTTP呼び出しに関してオーバーヘッドがあります。

しかし、私は応答時間がそれに起因するとは思わないと言いました。合理的な比較ポイントを得るためにXML over HTTPバージョンを今日実行しようとしましたか?多分、サイトはちょうど忙しいかもしれません。

もう1つの説明は、不正なコーディングである可能性があります。あなたは、決して知らない。

1

さて、ASP.NETスクリプトはC#コードとは異なる処理を行っている可能性があります。生のHTTPリクエストをそれぞれキャプチャして再生してみてください。彼らは同じことをしますか?そうであれば、クライアントコードの違いが考えられます。私の推測では、1つはHTTPのget/postリクエスト、もう1つはHTTP over HTTPです。

その他の見どころ: 1)ASP.NET用のプロダクションとC#用のテストシステムを使用していますか、どちらもプロダクションですか? 2)両方ともHTTPS経由であると仮定します。

SOAPベースのWebサービスは、通常、リクエストがWS- *、署名などを行う場合には、もう少し重いことがあります。キー/ xを指定してC#リクエストに署名する必要がありますか? 509または他の資格情報?

上記のいくつかの答えに応じて、このディスカッションにはさまざまな方法があります。

+0

"私の推測では、1つはストレートHTTPのget/postリクエストで、もう1つはHTTP over HTTPです。" あなたはまさにここにいます。私は数日間で両方をテストしましたが、それぞれのプロダクションサーバーを使用しています。そして、はい、SOAP呼び出しにはキーが必要です。 –

+0

プロトコルを制御できる場合は、HTTPに切り替え、WireShark(またはmy fav、netcat)を使用してリクエストをキャッチします。フェデックスのサーバーに戻して、あなたが得るタイミングを確認してください。私は、SOAPサービスのほとんどの時間がSOAP + WS- *オーバーヘッドによるものだと確信しています。 – DustinB

関連する問題