我在C#中有一个应用程序层,我需要在你进入DAL时检查是否通过VPN连接。这是为了在您没有VPN并执行查询时连接到Web服务,但是如果您通过DAL dll本地连接所有VPN,并且您可以使用本地服务器名称连接到数据库
答案 0 :(得分:0)
这是多个选项
如果DAL始终需要VPN连接以连接到数据库,那么始终在DAL的init上尝试打开SQL连接并检查它是否正常工作,否则VPN不存在。
VPN是ppp连接,因此如果任何PPP连接处于活动状态,您可以使用此代码进行检查,并尝试打开SQL连接并查看其是否有效
if (NetworkInterface.GetIsNetworkAvailable())
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface Interface in interfaces)
{
if (Interface.OperationalStatus == OperationalStatus.Up)
{
if ((Interface.NetworkInterfaceType == NetworkInterfaceType.Ppp) && (Interface.NetworkInterfaceType != NetworkInterfaceType.Loopback))
{
IPv4InterfaceStatistics statistics = Interface.GetIPv4Statistics();
MessageBox.Show(Interface.Name + " " + Interface.NetworkInterfaceType.ToString() + " " + Interface.Description);
}
else
{
MessageBox.Show("VPN Connection is lost!");
}
}
}
}