问题
I have a VPN connection that I keep losing, that I need to connect to our DB server, but every second or third connection fails because I have lost the VPN connection. I'd like to add somde code - for DEBUG config only - to check the VPN connection and reconnect if necessary, before proceeding to attempt the database connection.
回答1:
You could use System.Net.NetworkInformation.Ping to check if the connection is up - then rasdial to reconnect the vpn if the connection is lost.
eg
System.Diagnostics.Process.Start("rasdial.exe", "VPNName Username Password");
You can also disconnect the VPN using
System.Diagnostics.Process.Start("rasdial.exe", "VPNName /d");
Update
Calling rasdial with no arguments returns a list of open connections - might be a more robust solution for you.
来源:https://stackoverflow.com/questions/7076711/how-can-i-programmatically-connect-to-a-vpn