- PR -

クライアントからプロキシサーバを経由して・・・

1
投稿者投稿内容
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-05-09 19:17
いつもお世話になっています。

現在、プロキシサーバを使用しているクライアントからWebサービスを使用する際に
エラーが発生しており、原因を追究しているところなんですが、はっきり分からず困っています。

エラー内容は「基になる接続が閉じられました。受信時に予期しないエラーが発生しました」です。

処理の大まかな順序は
@クライアントでID・PWを入力後ログイン
AWebサービスを経由してDBサーバ(Oracle10g)で認証チェック
B認証結果をクライアントへ返す
C認証結果が正常ならモジュールをダウンロード(バイナリ形式で)
Dダウンロードしたモジュールをクライアントに反映

という流れです。

上記Bまでは正常に行えていることは確認できました。
Cはモジュールがなければダウンロードはしません。(エラー発生時はダウンロードモジュールなし)
DataSet _ds = WebSrvice.GetUpdateExe(out rtn1,out rtn2);
↑といった感じでバイナリ形式でモジュールをDataSetにダウンロードしています。
このCでエラーが発生しているのかな?という感じなんですが。。

エラーが出ているクライアントではInternet Explorerでプロキシ設定を行っています。

何か解決策をご存知の方がいらっしゃれば、教えてもらえませんか?
よろしくお願いします。


かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-10 09:56
引用:

DataSet _ds = WebSrvice.GetUpdateExe(out rtn1,out rtn2);
↑といった感じでバイナリ形式でモジュールをDataSetにダウンロードしています。
このCでエラーが発生しているのかな?という感じなんですが。。


エラーの内容を教えてください。
またバイナリデータでは無い形式のデータ受信は行えますか?

引用:

エラーが出ているクライアントではInternet Explorerでプロキシ設定を行っています。


Webサービスを提供するサーバはProxyの中にありますか?外にありますか?
Internet Explorer の Proxy 設定ではなく Webサービスのクラスごとに
Proxy の設定を行ったらどうなりますか?
[code]
webObject.Proxy = New System.Net.WebProxy("http://proxyserver:8080")
[code]

甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-05-10 10:22
InternetExplorer等のWEBブラウザ上から、Proxyを経由して呼び出した場合も同様の現象が発生しますか?
パケットモニターなどで通信系路上(Proxyの前後)のデータを確認した場合、どのような挙動をしていますか?
Proxyサーバーは何者(Squid?Delegate?その他?)ですか?

って辺りを攻めてみて欲しいです。素直に考えるなら、特定の通信データが発生したときに、何らかの理由でProxyが動作を中断している・・・って事になるんでしょうけど。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-05-10 12:54
お返事ありがとうございます。

Webサービスを提供するサーバはProxyの外にあります。

クライアント端末←→プロキシサーバ←→インターネット←→Webサーバ(IIS)←→プロキシサーバ←→DBサーバー(ORACLE)
という経路になります。
バイナリ形式のモジュールはWebサーバにあります。

WebサーバとDBサーバの間にプロキシがない環境では、正常に動作していました。

なにぶん、クライアントはお客さんのところにあり本番稼動している為、手直しが困難なもので。。可能な限り調査してみます。

通常、「ブラウザで設定されている静的プロキシ設定情報を自動的に使用する」と
書かれている箇所を見つけました。
http://support.microsoft.com/default.aspx?scid=kb;ja;307220#EKADAAA
プログラムでWebsrv.Proxy = WebProxy.GetDefaultProxy()
と記述しなくても良いということですよね?

うーん。。難しいです。。。
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-05-15 18:33
原因が判明しました。
今回の場合、プロキシサーバでダウンロード容量の制限を掛けていたからでした。
拡張子はexeでもdllでもダウンロード可能でした。

確認した内容は
1.容量の制限が掛かっていないか?
2.拡張子がexe、dllのもは除外されていないか?
3.ブラウザで直接Webサービスのアドレスにアクセスした場合、画面が表示されるか?

2、3についてはテストした結果、問題はありませんでした。

プロキシサーバで容量制限を上げてもらうか、それができないなら
バージョンアップしたモジュールをその都度メールで送信するかの対応に
しようかと思っています。
1

スキルアップ/キャリアアップ(JOB@IT)