- PR -

Webアプリケーション上でリモーティング

1
投稿者投稿内容
Y.YAMA
会議室デビュー日: 2002/11/28
投稿数: 2
投稿日時: 2002-11-28 18:57
初めて書き込みです、よろしくお願いします。

C#の初心者です。
仕事でC#にてWebアプリケーションを作成しています。

Webアプリケーション上でリモーティングを使用したいと思っているのですがうまくいきません。

構成としては、サーバーアプリ(WinApp)、ライブラリ(DLL)、クライアントアプリ(WebApp)の3つでサーバーアプリでリモーティングを使用して、ライブラリ中に定義してあるクラスをクライアント側で使用したいと考えてます。
リモーティングではTcpChannelで、ポートは「8002」(適当です)としています。

クライアントをWindowsアプリケーションで作成したものは思い通りに動作してくれ
クライアントだけをそのままWebアプリケーションに移植したのですが
プロジェクトのビルド後の1回だけは動作するのですが、そのあと「チャンネル tcp は既に登録されています。」
というエラーがでて、うまく動作しません。

クライアント側でリモーティングのチャンネルを登録している「System.Runtime.Remoting.ChannelServices.RegisterChannel」の部分で出ているようでためしにチャンネルの解除を行う「System.Runtime.Remoting.ChannelServices.UnregisterChannel」を試したのですが
これまた「チャンネル tcp はリモート サービスで登録されテいません。」というエラーが出てうまくいきません。
(私の使用方法に間違いがあるかもしれませんが。)

書籍や、インターネットも一通りは調べたつもりなのですが私の経験不足もあり解決することができませんでした。
実はWebアプリケーションでリモーティングをサポートしているのかどうかもわかりませんでした。

これらのに関することで知識、情報をお持ちの方お力をお貸しください。
お願いします。


[ メッセージ編集済み 編集者: Y.YAMA 編集日時 2002-11-28 19:00 ]
Y.YAMA
会議室デビュー日: 2002/11/28
投稿数: 2
投稿日時: 2002-12-02 09:46
自己レスです。

オブジェクトを生成している部分のコーディングする場所を間違ってしまったために起きた現象のようです。
newでリモートオブジェクトを生成している部分をWinアプリケーションの時は「InitializeData」で一回だけよべば動作していました。
Webアプリケーションの方では当初その処理を「WebForm1_Init」にいれていました。
それで前スレのようにエラーが出ていたようですが。
その処理を処理関数内で毎回呼ぶようにするとWinアプリケーションの時と同様の
動きを見せるようになりました。

結果的にはリモーティング以前にASPの仕組みよくわかっていために
起こした失敗のようです。
この解決方法が正しいかは不明なんですが・・・。

(用語の使用方法等怪しい個所がいくつかあると思いますが
 初心者ということでおおめにみて下さい。)

失礼しました。
1

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