DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WebサービスからWebサイトへアクセスする方法

環境/言語:[開発環境:Windows Vista、VB.NET/ASP.NET、.NET Framework 3.5]
分類:[ASP.NET]

いつもお世話になります。
早速質問させていただきます。
クライアントからSoap通信を受けたら、Webサービス(.asmx)から
サーバ上の画面(WEBサイト)に何かを動作させるようにしたいと思っています。
どのように実現したらよいかご教授お願いいたします。

そんなの何となく出来るだろって感じの質問ですが(私もそう思います)、
いろいろ調べたのですが完全に迷ってしまって(メンバーも一人なので)、
申し訳ありませんが、よろしくお願いいたします。


やりたいこと
・クライアントからWebサービス(.asmx)がSoapの要求を受け取ったら、
 メッセージボックスのようなものを出し、
 DBに登録し、サーバ画面の店舗一覧にマークか何かを表示する。

考えた方法
1.Webサイトのアドレスを指定し、イベントを起こさせる。
 そこからDBを更新し、マークを表示する。
2.Webサービスとアプリケーションが一つになれば、うまくいくんじゃないか?
 (良いサイトが見つかりません)
3.サーバ側のページから一定時間ごとにSoap通信をWebサービス(.asmx)に行い、
 異常があったらDB更新・マーク表示を行う。
 (これなら出来るかも。ただ、なんとなく変な感じです)


システム
クライアント:VB.NET
サーバ   :ASP.NET
両方とも  :.NET FrameWork 3.5
(仕様はほとんど決まっていません。)

処理の流れ
・異常発生時にクライアントからSoapでWebサービスへリクエスト →実装完了
・サーバ側からレスポンスを取得 →実装完了
・サーバ側で利用しているWebサイトに、異常発生時の動作を行う →どうしよう・・・

こんな感じです。(どんなだ)

教えていただきたいことは、
・ヒントとなるようなサイトはありませんか?
・WebサービスからWebサイトへ何かをさせることができますか?
・そもそもこういう場合はどうすればいいんでしょうか?

長くなりましたが、よろしくお願いいたします。

■No26457に返信(そめさんの記事)

処理の流れはこういう認識で合っていますでしょうか。
Windows フォーム → ASP.NET Web サービス → ASP.NET Web
■No26458に返信(もりおさんの記事)
>
> ■No26457に返信(そめさんの記事)
>
> 処理の流れはこういう認識で合っていますでしょうか。
> Windows フォーム → ASP.NET Web サービス → ASP.NET Web
>

もりおさん、返信ありがとうございます!
その認識で合っています。

ちなみに
「ASP.NET Web サービス → ASP.NET Web」
は一つのソリューション内でやっています。
大丈夫っぽいですが・・・。

返信があって、とてもうれしいです。
よろしくお願いいたします。

■No26459に返信(そめさんの記事)

Web サービスで DB への登録を行って ASP.NET の WebForm で DB を参照してマークを表
示してはいかがでしょうか。
■No26461に返信(もりおさんの記事)
>
> ■No26459に返信(そめさんの記事)
>
> Web サービスで DB への登録を行って ASP.NET の WebForm で DB を参照してマークを表
> 示してはいかがでしょうか。
>

もりおさん
返信ありがとうございます。

申し訳ないのですが、WebサービスでDB登録を完了したとき、
完了したことをWebFormへ知らせる方法というか、アクセスする方法って
何かあるんでしょうか?
WebFormのインスタンスを作成することも出来ませんので
四苦八苦しています。

WebFormがSoap通信を受けたことが分かるように
出来ればいいのではないかと思うんですが。

いろいろ試してみます。
よろしくお願いいたします。

■No26463に返信(そめさんの記事)

> 申し訳ないのですが、WebサービスでDB登録を完了したとき、
> 完了したことをWebFormへ知らせる方法というか、アクセスする方法って
> 何かあるんでしょうか?

Windows フォームでサービスにアクセスする以上は WebForm は存在しないですよね。
WebBrowser コントロールを利用されていらっしゃるということでしょうか。
Web サービスが更新する DB を WebForm において参照することで情報を伝達することに
なるのではないでしょうか
■No26464に返信(もりおさんの記事)
>
> ■No26463に返信(そめさんの記事)
>

もりおさん。
お世話になります。返信ありがとうございます。

> Windows フォームでサービスにアクセスする以上は WebForm は存在しないですよね。
> WebBrowser コントロールを利用されていらっしゃるということでしょうか。
WebFormはクライアント側には存在しません。サーバ側に存在します。

> Web サービスが更新する DB を WebForm において参照することで情報を伝達することに
> なるのではないでしょうか
そうですね。情報を伝達することにはなると思います。
ただ、WebFormがDBを参照するタイミングを
知ることが出来ないので困っています。
やはりWebFormから定期的にアクセスするしかないのでしょうか?
(Webサービスからアクセスしたい感じです。)


WebサービスからWebFormへ
「○○店舗で異常が発生して通信があったよ〜」って送るのって
ありがちな気がしたんですが、そうではないんでしょうか・・・。
上手なやり方がないか続けて探してみます。

言葉がすごくふんわりしていて大変申し訳ないです。
よろしくお願いいたします。

■No26466に返信(そめさんの記事)

> WebサービスからWebFormへ
> 「○○店舗で異常が発生して通信があったよ〜」って送るのって
> ありがちな気がしたんですが、そうではないんでしょうか・・・。

全然理解できていませんでした。お手を煩わせてしまいました。
サーバーから Web サイトを閲覧している側へのメッセージ送信ですか。
Comet とかサーバープッシュなどと呼ばれるものですよね。
正直私はこんな高度なことはしたことがないので助言できなかったりします。
Comet ポーリング ロングポーリング などで検索してみたところ参考になりそうな記事を見つけました。

ASP.NETでCometを利用したチャットを実装する
http://codezine.jp/article/detail/1081
■No26473に返信(もりおさんの記事)
>
> サーバーから Web サイトを閲覧している側へのメッセージ送信ですか。
> Comet とかサーバープッシュなどと呼ばれるものですよね。
> 正直私はこんな高度なことはしたことがないので助言できなかったりします。
> Comet ポーリング ロングポーリング などで検索してみたところ参考になりそうな記事を見つけました。
>
> ASP.NETでCometを利用したチャットを実装する
> http://codezine.jp/article/detail/1081
>

もりおさん

ありがとうございます!イメージはこんな感じです。
ただ、大変申し訳ないのですが・・・
サーバのWindowsフォームから定期的に
サービスからサーバのDBへアクセスするようになりました・・・。
流れとしては、
1.クライアントで異常発生→SoapでWebサービスへアクセス
2.Webサービス上でDBへ登録
3.監視用アプリから定期的にSoapでWebサービスへアクセス
4.データが増えてたら異常じゃん!と判断。

異常処理だけに以上です。


リーダーからは当たり前だろみたいな感じで一蹴されましたが
本っ当にいろいろ調べたりして、勉強になりました。

もりおさん、丁寧に返してくださってありがとうございました。
Cometなどについて聞かれても回答できるように調べたいと思います。

というわけで解決済みにします。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板