从Windows C#服务拨打VPN连接
我正在尝试使用C#和Visual Studio 2017开发一个Windows服务。我想从服务中拨出预配置的VPN连接 如果我在C#Windows桌面应用程序中放置以下代码行,它将快速闪烁CMD提示符并拨打VPN: System.Diagnostics.Process.Start(“rasdial.exe”、“ConnectionName用户密码”) 但它在服务中不起作用。我已经说到这一点了。它不会抛出错误,也不会拨号连接。当我跨过它时,它似乎什么也没做从Windows C#服务拨打VPN连接,c#,vpn,C#,Vpn,我正在尝试使用C#和Visual Studio 2017开发一个Windows服务。我想从服务中拨出预配置的VPN连接 如果我在C#Windows桌面应用程序中放置以下代码行,它将快速闪烁CMD提示符并拨打VPN: System.Diagnostics.Process.Start(“rasdial.exe”、“ConnectionName用户密码”) 但它在服务中不起作用。我已经说到这一点了。它不会抛出错误,也不会拨号连接。当我跨过它时,它似乎什么也没做 System.Diagnostics.P
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就好了
我用谷歌搜索了一下,但没有发现任何东西,所以我想我会把它交给专家
谢谢
斯蒂芬·辛普森(Stephen Simpson)肯·怀特(Ken White)指出,服务帐户与普通用户帐户没有相同的权限。我通过在特定用户下运行服务解决了这个问题。如果使用相同的参数直接从命令提示符运行exe会怎么样?它工作正常吗?服务帐户没有与普通用户帐户相同的权限。如果我在提示符下运行命令行,它会工作,我可以让它在C#windows窗体应用程序中调用VPN。这也行。但在我编写的Windows C#服务中,它似乎没有任何作用。