none
XML Webサービスの配置および参照で異常な動作 RRS feed

  • 質問

  • VS2010でWEBサービスとWindowsクライアントを開発しております。

     

    Webサービスは「WEBの発行」ウィンドウで、発行方法を「WEB配置」に設定し、IIS側へ配置しております。

    クライアント側でそのサービスを参照し、開発を進行しておりました。

     

    数日前に発行したWEBサービス(asmx)に不具合が見つかり、修正後再度配置しなおしました。

    クライアント側でもサービス参照の更新を行い、修正後の戻り値を期待しました。

    が、結果が変わりません。

     

    不思議に思い、以下のテストをしました。

    1. WEBサービス側のメソッド名を変更し、再配置、参照更新。 -> クライアント側でエラー(当然の結果)
    2. WEBサービス側のメソッドの中身をコメントアウトし、空のDataSetを返すように変更。再配置、参照更新 -> コメントアウトしているのにDataSetが戻ってくる。

    コメントアウトしたにもかかわらず、コメントアウト前の結果が返ってきます。

     

    参照の更新を行ったり、WEBサービス参照をいったん削除後に再度参照しなおしたりもしておりますが結果が変わりません。

    キャッシュされているような動きです。

    (しかしWEBサービスのメソッド名を変更すると、クライアント側では正しくエラーになります。)

    メソッド名の変更にはエラーになるものの、その中身は見ていないような、とても不思議な動きをします。

     

    確認すべき項目などご指摘ください。

    2011年11月8日 9:59

回答

  • 私が思いつくのは
    ・本当にクライアント側のWebサービス参照のURLが間違っていないか(テスト用・本番用など)
    ・IISの再起動(というかIIS側のキャッシュを消す操作)
    ・途中にプロクシなどが挟まっていないか
    ぐらいです。あまり参考になりませんね、すいません。

    個人的にはURL間違いは結構します。開発時に思っていたのと違うのが使われていて、
    クライアント側でしっかり表示させてから気づくといった次第です。

    • 回答としてマーク TwSoft 2011年11月10日 2:05
    2011年11月10日 0:57
  • テンポラリーフォルダですが、サーバー上のたとえば以下のようなフォルダになります。

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

    利用しているFrameworkのバージョン等でフォルダの位置は変わりますので、そのあたりは適宜修正してください。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク TwSoft 2011年11月10日 2:05
    2011年11月10日 1:32

すべての返信

  • ASP.NETを用いたWebアプリはWebサービス(asmxですか?)を含めてコンパイルされた状態がテンポラリーフォルダに配置されて実行されます。
    通常はソースファイルを置き換えると再コンパイルが行われ、テンポラリーフォルダの中身も書き換わるのですが、たまにうまく置き換えが行われないことがないわけではありません。
    過去の状態のまま、ということであれば一度テンポラリーフォルダの中を消してしまったうえで実行すると変更が正しく反映されるかもしれません。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2011年11月9日 0:55
  • 小野様

    ありがとうございます。

     

    テンポラリーフォルダとはどこの何という名前のフォルダーでしょうか。

    WEBアプリソリューションのReleaseフォルダを削除しリビルド、再度発行をしましたが変わりません。

     

    わざとWEBサービスのメソッドがバグになるようにコーディングし発行。クライアント側では参照を更新していますが、実行するとバグにならず昔の結果が返ってくる状況です。

     

    よろしくお願いします。

    2011年11月9日 1:03
  • 私が思いつくのは
    ・本当にクライアント側のWebサービス参照のURLが間違っていないか(テスト用・本番用など)
    ・IISの再起動(というかIIS側のキャッシュを消す操作)
    ・途中にプロクシなどが挟まっていないか
    ぐらいです。あまり参考になりませんね、すいません。

    個人的にはURL間違いは結構します。開発時に思っていたのと違うのが使われていて、
    クライアント側でしっかり表示させてから気づくといった次第です。

    • 回答としてマーク TwSoft 2011年11月10日 2:05
    2011年11月10日 0:57
  • テンポラリーフォルダですが、サーバー上のたとえば以下のようなフォルダになります。

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

    利用しているFrameworkのバージョン等でフォルダの位置は変わりますので、そのあたりは適宜修正してください。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク TwSoft 2011年11月10日 2:05
    2011年11月10日 1:32
  • mars12様、小野様。

     

    テンポラリフォルダ削除後、IIS再起動を行いました。

    思った結果が得られました。

     

    なぜこのようになるのか、また再現するのかについては、社内の技術者(WEBサーバー管理者)と確認してみます。

     

    先に進むことができました。

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

    2011年11月10日 2:05