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

ASP.NETでのプロセス間通信について

環境/言語:[.NET Framework2.0 C#]
分類:[ASP.NET]

IIS6.0のサーバーで動作する予定のASP.NETを作成するつもりなのですが、
重い処理件、複数件来ると想定される処理をサーバー上に常駐させているプロセス
(C#で作成しているwindowsフォームなどを想定しています)
にプロセス間通信で処理対象のデーターを送り、
常駐プロセス側でスレッドを立てて処理する事を想定しております。

socket通信で受信用のプロセスを一つ作成して、
そこからwindowsメッセージで処理を振り分けることも考えたのですが、

.NET Remotingのサイトを読んでいたら、
こちらのIpcServerChannel を使用したらsocketでなく通信できる気がしているのですが、今一つ.NET Remotingが理解できません。

ASP.netとwindowsフォームで通信しようとしたら、
リモート・オブジェクはdllファイルで作成して
ASP.netとwindowsフォーム両方に参照設定に追加しておくのでしょうか?

そもそもwindowsフォームを使うな…
webサービスで作成するべきな気がしてもしょうがないのですが、
サーバーの電源を落とす処理などはいってきてしまいそうなので
現在の形式を想定しております。

まとまりの悪い質問で申し訳ありませんが宜しくお願い致します。
まだ誰もコメントしないので・・・

回答ではありません。解決策の一つとして
まず、そのような事象になること事態を改善しないと
いけないのでは?ASP.NETなんですから。

で、方法としては
ストアドの非同期実行を使うとか

もしくは、SqlDependency使った方法で結果をイベント
として受け取って処理を続行させるとか。

※ ASP.NETには、SqlDependencyを使わず別の方法が
  あったように思いますが、私はASP.NETをほとんど
  使わないもので・・・

ご検討下さい。

以上。
そうですね…。
今までJavaでWebアプリ開発していてASP.NETそこまで理解できていないんですが、
このような開発あまりないなあと思っているんですが…。

ちなみにWindowsアプリで実装予定のほとんどは、
DB関係でないのでストアドは無理ですね…。

IPCでできたらと思い実験中なのですが

■No24422に返信(オショウさんの記事)
> まだ誰もコメントしないので・・・
>
> 回答ではありません。解決策の一つとして
> まず、そのような事象になること事態を改善しないと
> いけないのでは?ASP.NETなんですから。
>
> で、方法としては
> ストアドの非同期実行を使うとか
>
> もしくは、SqlDependency使った方法で結果をイベント
> として受け取って処理を続行させるとか。
>
> ※ ASP.NETには、SqlDependencyを使わず別の方法が
>   あったように思いますが、私はASP.NETをほとんど
>   使わないもので・・・
>
> ご検討下さい。
>
> 以上。
> IPCでできたらと思い実験中なのですが

  WindowsサービスとデスクトップアプリとのIPCは
  できました。

  しかしASP.NETとのリモーティングはやったことない
  ので・・・

  Webサービスならば可能と思いますが、なんせASP.NET
  やWebサービスはやらないもので、解りません。

※ リモーティングのDLLを参照するだけでは動作しません。
  サーバー側は、そのリモーティングの派生クラスとして継承
  させ、リモーティングで受信する関数をオーバーライドして
  そこに処理を書きます。

  よいサンプルが見つかったらカキコします・・・

以上。
申し訳ありません。
大変助かります。

windowsアプリとwindowsアプリとの連携は

http://www.unisys.co.jp/dotnet/pdf/dotnet0406_070_Feature2.pdf
を参照にしているのですが

http://support.microsoft.com/kb/323490/ja
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22059&forum=7

など問題が多くて中々難しいです…。
> http://support.microsoft.com/kb/323490/ja
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22059&forum=7
>
> など問題が多くて中々難しいです…。

  あれ・・・
  私の勘違い?!

  IISの稼働しているサーバーと
  それを参照しているブラウザのあるクライアントPC間での
  での通信と言うことですか?

  その場合、多分ですが、.NETリモート使うよりActiveXの方が
  楽と言うか・・・私はActiveX作れましたので、その方が実現
  しやすかった・・・(ASPの折よりと言う意味もあります)

  非同期を実装するなら、AJAXと言う手法もあろうかと思います
  が、その手(最近の方法)には疎いので、誰か詳しい方、カキ
  コ願います!〜

以上。
いえ

サーバー上においてあるWindowsアプリとの通信です。

Asp.net(クライアント) → サーバー上においてあるホストしているWindowsアプリ(常駐)まで
おかげさまで通信できました。

さらに
サーバー上のWindowsアプリ(常駐)を別のサーバー上のWindowsアプリ(常駐)
まで送信してみようかとおもっていますが、
プロセスのチャンネルの関係とかがめんどうですね…。

リモーティング使いこなせれば便利なんでしょうかね
> さらに
> サーバー上のWindowsアプリ(常駐)を別のサーバー上のWindowsアプリ(常駐)
> まで送信してみようかとおもっていますが、
> プロセスのチャンネルの関係とかがめんどうですね…。
>
> リモーティング使いこなせれば便利なんでしょうかね

  一度動作するもの作ってしまったら、コードのリサイクル
  できますので、楽ですヨ!(再利用ネ)

  がんばって下さい!

以上。
ありがとうございました。
多少問題がありますが、
通信は可能になりましたので閉めたいと思います。
解決済み!

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