- PR -

クライアントのEXEからサーバーのEXEをサーバー上で動かす

投稿者投稿内容
リオン
会議室デビュー日: 2004/05/13
投稿数: 4
投稿日時: 2004-05-19 17:17
はじめまして。
題記の通りなのですがVB.NET
クライアント側のEXEからサーバー上にあるEXEを起動し
サーバー上で動作をさせる方法は何かありますでしょうか?
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-05-19 17:34
TCP/IPを使うというのはどうでしょう。
つまりサーバープログラムを動かしておいて、クライアントがそれに接続に行くという通常のクライアント/サーバー型です。
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-19 17:35
引用:

リオンさんの書き込み (2004-05-19 17:17) より:

クライアント側のEXEからサーバー上にあるEXEを起動し


そもそも、どういう「クライアント」、どういう「サーバ」なんですか?
Windowsフォームなのか、Webフォームなのかでも大違いです。

ちなみに起動周りは
http://www.atmarkit.co.jp/fdotnet/index/bbs/dir59.html
も見てください。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-05-19 17:55
Webサービスとか。

コード:
// Webサービスのサーバー側メソッド
// Pingを実行して標準出力を返す
[WebMethod]
public string Ping(string hostName)
{
	ProcessStartInfo info = new ProcessStartInfo();
	info.FileName = "ping.exe";
	info.Arguments = hostName;
	info.RedirectStandardOutput = true;
	info.UseShellExecute = false;
	Process p = Process.Start(info);
	p.WaitForExit();
	return p.StandardOutput.ReadToEnd();
}

リオン
会議室デビュー日: 2004/05/13
投稿数: 4
投稿日時: 2004-05-24 10:25
こんにちは。返答が大変遅くなって申し訳ありません。

クライアントというのは普通にクライアントで動くクライアントモジュールで
サーバーにある別EXE(サーバーからみればクライアントモジュール)を起動する
という意味でした。
ちなみにwindowsフォームです。
私も漠然とそういうのは出来るのか?と聞かれSHELL関数などみたりしていましたが
それだけではダメなようなので質問しました。
もう少し細かい部分を調べて出直してまいりたいと思います。
返答くださった方ありがとうございました。

[ メッセージ編集済み 編集者: リオン 編集日時 2004-05-24 10:27 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-24 10:37
サーバ
 |−P:\共有フォルダ
   |−共通モジュール.exe


というように、共有してあるフォルダに置いてあるEXEを、クライアントから実行するということでしょうか。


 UNCパスがわかれば、Processクラスなどから実行可能ですが、この場合「サーバ」はクライアントから見て「他のPC」になるので、実行される「共通モジュール.exe」には「イントラネット」か、「インターネット」のアクセス制御がかかります。また、どちらか、あるいは両方が署名されている(厳密名が付加されている?)必要があるかもしれません。
リオン
会議室デビュー日: 2004/05/13
投稿数: 4
投稿日時: 2004-05-24 17:13
返信ありがとうございます。
Jittaさんの通り共有モジュールをクライアントから実行しクライアントに付加をかけずに
サーバー自身の付加のみで実行するということがしたかったのです。
Processクラスというのがあるのですか・・・。
今回はイントラネットでのシステムです。
アクセス制限Processクラスなどの勉強をしてみたいと思います。
ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-24 17:28
引用:

リオンさんの書き込み (2004-05-24 17:13) より:

Jittaさんの通り共有モジュールをクライアントから実行しクライアントに付加をかけずに
サーバー自身の付加のみで実行するということがしたかったのです。


 ちょっと待ってください。
 まず確認ですが、「付加」は、「負荷」の誤りですね?

 で、Processクラスで起動すると、クライアントに負荷がかかります。サーバ側に負荷を掛ける、つまりサーバで実行させるには、一郎さんのおっしゃるような、TCP/IPを利用したり、todoさんのおっしゃるようなWebサービスなどの方法が必要です。一般的にはRPC、リモートプロセスコール、かな?.NET Frameworkでは、アプリケーションドメインとか、ドメイン間通信で、説明されているかもしれません。

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