从Windows C#服务

时间:2018-04-01 01:52:29

标签: c# vpn

我正在尝试使用C#和Visual Studio 2017开发Windows服务。我想从服务中拨打预配置的VPN连接。

如果我将以下代码行放在C#Windows桌面应用程序中,它将快速刷新CMD提示并拨打VPN:      System.Diagnostics.Process.Start(“rasdial.exe”,“ConnectionName用户密码”);

但它在服务中不起作用。我已经把它带到了这一点。它不会抛出错误,也不会拨打连接。当我逐步完成时,它似乎什么也没做。

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = new System.Diagnostics.ProcessStartInfo("rasdial.exe", "ConnectionName user password");
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.ErrorDialog = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.Start()

不确定如何解决此问题或后续步骤。如果有API,API会很好。

我已经做了一些谷歌搜索,但无法发现任何东西,所以我想我会把它带给专家。

感谢。

Stephen Simpson

1 个答案:

答案 0 :(得分:0)

Ken White指出,服务帐户与普通用户帐户没有相同的权限。我通过在特定用户下运行服务来解决问题。