首先让我解释一下我要做的事情; 我已经制作了一个安装和(在某种程度上)管理Windows服务的wpf应用程序。这些服务也是用c#编写的,并尝试启动第三方服务器。
wpf应用程序运行正常,通过新安装的Windows服务启动服务器也完美无缺。现在问题来了;即使一切看起来都运行得很好,第三方服务器似乎也无法访问互联网。
我使用process.start启动流程,如下所示:
serverProcess = new Process();
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = args[1]; //exe
pi.Arguments = args[2]; //start params
pi.UseShellExecute = false;
pi.CreateNoWindow = true;
pi.ErrorDialog = false;
pi.RedirectStandardOutput = true;
pi.RedirectStandardError = true;
pi.RedirectStandardInput = true;
pi.WindowStyle = ProcessWindowStyle.Hidden;
serverProcess.StartInfo = pi;
serverProcess.Exited += new EventHandler(serverProcess_Exited);
serverProcess.Start();
由于这在会话0中运行,我不希望它创建一个gui。我使用管理应用程序读取标准输出,从中可以推断出服务器实际上在运行。但是,当尝试连接到它时(使用localhost),它甚至都找不到服务器。
非常感谢任何帮助!
修改
我遇到困难的地方,或者说服务器卡住,是需要连接到MasterServer的地方。它只是无限期地挂在那里,我不知道为什么。