- PR -

実機にて、スマートクライアントのWeb参照の扱い

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-17 17:42
ブラウザに
http://webserver/test/Services.asmx
を入れて何か見えますか?
(GETの要求を不可にしていたら見えないんだったかな。でもまだしてないはず)
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-10-18 22:01

返答ありがとうございますm(_ _)m。

他のトピック等を調べながら、これで進展っと行きたい所だったのですが、
Web参照がどうしてもできませんでした。

URLに直接指定すると、サーバのメゾットの一覧が表示されるのでしょうか?

直接指定したらアプリケーションエラーになります。
エラー詳細のモード設定があったので、web.configで指定したのですが
表示は変わりませんでした。

Web開発のベースが、Java+strutsで、Web-Inf以下は
外部から見れなかった記憶があるのですが・・・。

サーバ側で何か設定をしないと駄目なのでしょうか?

それから、サーバサイドのWebサービスのプロジェクトを
サーバサイドにそのまま置いたのですが(ビルド済み)
それがまずいのでしょうか?


taka-u
会議室デビュー日: 2005/06/28
投稿数: 1
投稿日時: 2005-10-19 09:38
はじめまして、taka-uです。

私は、C#を利用し、ノータッチデプロイメントでサーバへのWEB参照を
行っています。(WEBサービスもC#で作成しています。)

サーバ側での設定として、IISの設定画面から
サーバにおいてあるWEBサービスをアプリケーションとして作成する
必要があると思いますが、こちらはされていますか?
(IISの設定しかわからないのですが・・・)

ただ、私も、あまり詳しくないので私の利用している環境内のレベルでしか
説明ができなくて申し訳ないのですが・・。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-10-19 18:46
さくさん、こんばんは。

引用:

それから、サーバサイドのWebサービスのプロジェクトを
サーバサイドにそのまま置いたのですが(ビルド済み)


そのまま置いた、というのがどういう状況なのか判りませんが、ASP.NET Webサービス プロジェクト の配置については、IDE のメニュー、またはソリューションエクスプローラのツールボタンで「プロジェクトのコピー」を実行するか、あるいは「Web セットアップ プロジェクト」をソリューションに追加して インストーラ を作成するという方法も考えられます。
手っ取り早いのは「プロジェクトのコピー」ですが、Windows のフォルダ共有、または FromtPage のWeb発行を利用しますので、DMZ に配置されたサーバなど、状況によっては使えない場合もあります。
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-10-19 21:14
返答ありがとうございます。

職場から掲示板に書き込みができず、
帰宅してからの書き込みとなってしまいます。

サーバへのコピーは、エクスプローラから単純にコピーしているだけでした。
明日試してみたいと思います。

それから、IEのURLに直接サーバのファイルを指定する方法ですが、
root/WebService/Service.asmx では見れず、
root/Service.asmxでは見れる事が分かりました。
メゾットの一覧が表示されてました。
WebServiceのフォルダがなぜ見れないのかが分からないのですが・・・。
ご教示下さい。

上記の問題が解決していないのですが、本日出たエラーで
下記のようなエラーがありました。
Webブラウザからクライアント用のEXEファイルを実行
ダウンロード後、実行ボタンをクリックすると
フォームが表示されるのですが、フォームのボタンを実行すると

System.Web.Services.Protocols.SoapException: サーバーは要求を処理できません
でした。 --> ファイルまたはアセンブリ名 ev7eel3l.dll、またはその依存関係の
1 つが見つかりませんでした。

たるエラーがでます。

また、上記でダウンロード後、実行ではなく保存してから
実行すると、下記のようなエラーがでました。

System.InvalidOperationException: キー 'XXXSvr.Service1' が appSettings
構成セクションに存在しません。

これは、WebサービスのURLをapp.configに指定して
プログラム内で動的に取得するようにしたためです。
app.exe.configファイルがあるのですが、これはダウンロードしていないから
当然みれないなっと思ったのですが、
app.configにサーバのURLを指定する方法って間違っているのでしょうか?
プログラムソースで固定でURLを持たせたくないのと
デバッグでローカルとサーバを入れ替えるのが面倒という思惑があったのですが・・・。

一度に質問を書き込んでしまいましたが宜しくお願いします。

さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-10-19 21:22

追加質問なのですが、

Web参照は、「ノータッチデプロイメント」でないと駄目なのでしょうか?
調べたのですが、DLLを作成後、IIS設定で仮想ディレクトリに
DLLとEXEをコピーすると思うのですが、
これが、Web参照とどうつながるのか疑問に思っています。

基本的な質問ですが、宜しくお願いします。

囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-19 22:40
Web サービスに対してどこまでご理解されていますか?(といっても私も詳しくないですが)
まずは単純な問題から整理していきましょう。

引用:

それから、IEのURLに直接サーバのファイルを指定する方法ですが、
root/WebService/Service.asmx では見れず、
root/Service.asmxでは見れる事が分かりました。
メゾットの一覧が表示されてました。
WebServiceのフォルダがなぜ見れないのかが分からないのですが・・・。


IIS の仮想ディレクトリの設定はどうしていますか?

引用:

Web参照は、「ノータッチデプロイメント」でないと駄目なのでしょうか?
調べたのですが、DLLを作成後、IIS設定で仮想ディレクトリに
DLLとEXEをコピーすると思うのですが、
これが、Web参照とどうつながるのか疑問に思っています。


とりあえず、ノータッチデプロイメントは置いておいて、テスト的にローカルで Windows アプリケーションでも作って、Web サービスを呼び出す感じを掴んでみて下さい。
クライアントアプリケーション(今回の場合はノータッチの exe)と Web サービスを一緒に作っているから混乱しているのでしょう。切り離してください。

root/Service.asmx 。
これでサービスの場所は分かりましたね。
まずは、先にも言った様に、簡単な呼び出しを行うだけの Windows アプリケーションを作ってください。
Web 参照は必ずローカルを使わないように。きちっと URL を入れてください。この時点では構成ファイルも忘れてください。後でいくら変更できます。
ここまでやったら、何となく分かって一気に解決するかもしれません。
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-10-20 22:12
お世話になっております。

本日の作業で確認したのは、
プロジェクトのコピーでブラウザから、
root/WebService/Service.asmxのような階層でも
見れるようになったこと。見れる理屈は理解できました(汗

それから、クライアントプロジェクトのWeb参照をやめて
普通の参照でサーバ側プロジェクトを参照設定にし、ビルド。
サーバークライアント間で動作確認したところ、
動いているのを確認しました。でもこれは、オラクルデータベースに
アクセスするとエラーになりました。
調査した結果、クライアントプロジェクトをビルドした時に生成された
サーバプロジェクトのDLLとやり取りしてて、
サーバ側とはやり取りしていなかったから、問題外でした・・・。

Web参照の箇所を実装する時に、何かをしなければいけないと
感じているのですが、何をすればいいのか検討がつきません。

ちなみに、Web参照の設定で実装した時に
「SoapException XXXX.dll 依存関係 1つ見つけられませんでした。」
のようなエラーがでます。
(帰宅後、書き込みしているのでエラーメッセージの記憶がうつろですが・・・。)

以上、本日は進展と言えば進展したというか、しかし結局できないままです。
サーバ側のIISの設定(アクセス権)とかを疑っているのですが・・・。
サーバ側(他Webシステムが動作しているため)をいじれないので、
確認できないままです。

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