1
我想通過使用遠程處理和Windows服務啓動應用程序(在本例中爲記事本)。爲了測試,我試圖讓記事本運行。雖然我似乎建立了連接(在任務管理器的進程下,記事本正在運行),但我沒有看到窗口出現。我有一個用來發送命令的客戶端,通過輸入一個文本框並單擊一個按鈕來運行,服務應該能夠接收命令。有3個部分,以我的代碼:使用遠程處理和Windows服務執行C#應用程序
MyNewService:
namespace MyNewService
{
public partial class MyNewService : ServiceBase
{
bool serviceOn = false;
string command = String.Empty;
HttpChannel ch = new HttpChannel(4002);
public MyNewService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
ChannelServices.RegisterChannel(ch);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Service.Test), "ServiceURI", WellKnownObjectMode.Singleton);
}
}
}
服務:
namespace Service
{
public class Test:MarshalByRefObject
{
public Test()
{
}
public void runCommand(string command)
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = command;
myProcess.Start();
}
}
}
客戶
namespace Client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Test t;
string command;
private void Form1_Load(object sender, EventArgs e)
{
System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownClientType(typeof(Test), "http://remoteComp:4002/ServiceURI");
t = new Test();
}
private void button3_Click(object sender, EventArgs e)
{
command = textBox1.Text;
t.runCommand(command);
}
}
}
我已經到位的Windows服務的書面一個控制檯應用程序爲了測試窗口是否出現,窗口確實顯示出來。但是使用Windows服務時,該進程只能在後臺運行。
任何想法是怎麼回事?
感謝您的回覆。我會研究它,看看我能做些什麼。 – user1504869 2012-07-05 23:01:42