none
XML Webサービスで「ソケットエラー」? RRS feed

  • 質問

  • 毎々お世話になっております。

    WindowsXP-Pro Ver.2002 SP2 上で
    Visual Studio 2005 Enterprise Edition でVB2005による開発を行っております。

    現在XML Webサービスを用いたリッチクライアント環境下で動作するアプリを開発しております。

    またWebサーバとDBサーバはWin7機で同居しており、開発機とはLANで接続してあります。

    ちなみにDBはSQL Server2005 Developper Edition です。

    本日クライアントからXMLサービスを用いてDBへQueryを投げたところ

    「ソケット以外のものに対して操作を実行しようとしました。」エラーが頻発するようになりました。

    Web サービスの処理や依頼までの手続きなどは、昨日までと同様で変更はありません。
    あるとすれば、実行するQuery の内容ぐらいです。

    納期間近でこんなエラーが出てかなり焦っております。

    取り急ぎ現象だけアップしました。
    情報が足りないと思いますので、どんな情報が必要で、どこから取得するのかを教えてください。

    念の為、Stack Trace の抜粋をあげておきます。

    場所 System.Net.Sockets.Socket.Poll(Int32 microSeconds, SelectMode mode)
    場所 System.Net.Sockets.NetworkStream.PollRead()
    場所 System.Net.Connection.StartRequest(HttpWebRequest request)
    場所 System.Net.Connection.SubmitRequest(HttpWebRequest request)
    場所 System.Net.ServicePoint.SubmitRequest(HttpWebRequest request, String connName)
    場所 System.Net.HttpWebRequest.SubmitRequest(ServicePoint servicePoint)
    場所 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
    場所 System.Net.HttpWebRequest.GetRequestStream()
    場所 System.Net.WebServices.Protocols.SoapHttpClientProtocolInvoke(String methodName, Object[] parameters)

    どなたか、助けてください。
    よろしくお願いします。

    2011年8月27日 9:48

すべての返信

  • > 「ソケット以外のものに対して操作を実行しようとしました。」エラーが
    > 頻発するようになりました。

    そのエラーメッセージでググって見ると 4 万件ヒットしますが、それから
    参考になりそうなページを探して、対処されたうえで、質問をアップされた
    のでしょうか?

    であれば、「このページの情報を元にここまでやったがダメだった」程度の
    情報は提供できませんか?

    > ちなみにDBはSQL Server2005 Developper Edition です。

    Developper Edition は開発目的以外に使えるのでしょうか?  ライセンスの
    問題以外に、自分が使ってみた限りでは、TCP/IP 接続ができなかったように
    記憶しています。

    2011年8月28日 2:20
  • SurferOnWww 様、ありがとうございます。

    Google 検索でヒットした中をさぐってみると、

    ・××アプリをアンインストールしたら発生した
    ・OSが XP 以外
    ・レジストリを修正する

    等々で、混乱してしまいフォーラムにすがってしまいました。

    現在5台中3台のPCで当該現象が発生している為、レジストリ云々や某アプリのアンインストールは
    関係ないのかと思っております。

    ようするにまだ何も試してはいません。
    (何から手をつけていいのか分からない状態です)

    また、Developper Edition はあくまで開発環境で使用しています。

    お客様の環境では Express Edition を使用します。

    また、Developper Edition 上での開発を始めてすでに3年ほど経過しており、
    今までなんら問題なく使用できています。

    よろしくお願いします。

    2011年8月30日 4:07
  • ちなみに、Windows 7 のエディションは何でしょうか?
    (さすがに Home Preminum ということはないかな。)
    2011年8月30日 9:45
  • > ようするにまだ何も試してはいません。
    > (何から手をつけていいのか分からない状態です)

    その状況ですと、ここに書いてあること以外には情報を知り得な
    い回答者が適切なアドバイスをするのはかなり難しそうです。

    以前のスレッドを見ると、問題が発生したが、いつの間にか直って
    しまったというのが何件かあります。結局それらは直ってなくて、
    回答者の想像を超える状況になっているような気がします。(違っ
    ていたら失礼しました)

    お役に立てずすみませんが、ある程度ご自分で切りわけを進めて
    いただく他なさそうです。100% 問題を再現できるまで範囲を絞っ
    てから質問いただくと、解決が早いと思います。そこまで絞れれ
    ば自己解決できるかもしれませんし。


    以下は今回の問題とは関係ない話ですが・・・

    > お客様の環境では Express Edition を使用します。

    であれば、なぜ開発環境でも Express Edition を使用しないので
    しょう。実環境にしたときまた問題が出る可能性がありますが。

    > またWebサーバとDBサーバはWin7機で同居しており

    Win7 付属の IIS では同時アクセスに制限があるはずですが、そこ
    のところは問題ないのですか? 以前のレスで 2 人しかアクセス
    しないから大丈夫とありましたけど、問題は人数ではなくて要求数
    です。今は PC 5 台でアクセスしているのですよね。

     

    • 回答の候補に設定 山本春海 2011年10月27日 8:09
    2011年8月30日 11:44
  • totojo 様、返信が遅くなり、申し訳ありません。

    > ちなみに、Windows 7 のエディションは何でしょうか?

    Professional です。

    2011年9月10日 2:26
  • SurferOnWww 様、返信が遅くなり、申し訳ありません。

    Google 等からの検索でヒットした中をさぐってみると、

    ネット接続自体ができなくなってしまっている状態がほとんどのようでした。

    私の環境では

    ○ソケットエラーは発生するが、DBへは正しく書かれている。
    ○エラー後、そのままWeb接続が生きている
    ○同一のデータで再度書き込みを行ってもエラーにならない事もある。

    など、恒久的なエラーではなく一時的に発生しているエラーのように見えます。

    Dos窓で ipconfig/renew を叩いても問題なく返ってきます。

    「Windows はネットワークエラーが発生すると、Socket と Dns にエラーをスローする」
    という書き込みを見た というアドバイスを知人から聞いております。

    ソケット以外が要因ならソケット関連をいくら調べても無駄なのかとも思います。

    その場合のネットワークがらみのエラー情報(本当のエラーの起因や内容)は
    どこからたどればよいかも分かりません。

    よろしくお願いします。

    ちなみに、現在はお客様環境に接続している中でソケットのエラーが発生しております。

    ○お客様環境

    Webサーバ+DBサーバ:
     Microsoft Windows Server 2003 R2 Standard Edition SP2
     ・IIS V6.0
     ・Microsoft SQL Server 2005 Express Edition

    Webサーバは固定IPで公開されており、URL http://HogeHoge.ne.jp/PiyoPiyo/Service.asmx で見に行ってます。

    2011年9月10日 3:13
  • 最初の書き込みでは「WebサーバとDBサーバはWin7機で同居」だったのが、今回
    は「Microsoft Windows Server 2003 R2 Standard Edition SP2」に変わったので
    すか?

    掲示板の情報からは状況を全く把握できません。

    すみませんが、自分はお役に立てそうもありませんので、ご自分で切りわけを進
    めて 100% 問題を再現できるまで範囲を絞ってから再度質問いただくか、他の方
    の回答をお待ちいただくほかないと思います。
    2011年9月10日 6:43
  • SurferOnWww 様、返信ありがとうございました。

    また、説明不足から混乱させてしまったようで、申し訳ありませんでした。

    最初の書き込みでの「WebサーバとDBサーバはWin7機で同居」は開発中でのお話しでした。

    「Microsoft Windows Server 2003 R2 Standard Edition SP2」 はお客様の環境、つまり
    本番環境という事になります。

    よろしくお願いします。


    < 追 記 >

    ググってヒットした中に、発生時に ipconfig/renew を行なって正しくIPが取得できなければ

    TCP/IPを再インストールすればよい。。。といった内容がありましたので、試してみました。

    「ソケット以外のものに対して操作を実行しようとしました。」エラーが発生した直後に

    DOS窓から ipconfig/renew をおこなった所、IPは正しく習得できてしまいました。

     

    2011年9月10日 8:02
  • 自己レス です。

    IIS内のサービスでログを吐くようにしてみたところ、「ソケット以外のもの~」エラー発生時にはログを吐いていない事が分かりました。

    つまりサービスまでたどり着いていないという事のようでした。

    (以前はエラー発生時もDBへは正常に書き込まれると書きましたが、すみません、誤りでした。)

    であれば、依頼電文自体に問題があるのかもと思い、アプリケーションプールのWeb.config 内に MaxRequestLength を

    定義してみました。(デフォルトが4Mだと聞いたので、5~10Mの幅で変えてみました。)

    結果は値を大きくしても発生頻度は変わりませんでした。

    また、今まではDB書き込み依頼時にしか発生しなかったのですが、最近まれにDBからの読み込み依頼時にも発生するように

    なりました。

    だれか詳しい方がいらっしゃいましたら、よろしくお願いします。

    2011年9月28日 6:07