C#如何通过网页启动服务?
我这里有个类是用wmi来操作的!只要服务器开启wmi服务就行了!
网页中有个执行权限的问题!我也没试过!如果下面的方法不行的话!
还可以开新的process用dos code来执行!
using System;
using SystemManagement;
namespace ServicesManage
{
public class Win32ServiceManager
{
private string strPath; private ManagementClass managementClass;
public Win32ServiceManager()
: this("", null, null)
{
}
public Win32ServiceManager(string host, string userName, string password)
{
thisstrPath = "\\\\" + host + "\\root\\cimv2:Win32_Service";
thismanagementClass = new ManagementClass(strPath);
if (userName != null && userNameLength > 0)
{
ConnectionOptions connectionOptions = new ConnectionOptions(); connectionOptionsUsername = userName;
connectionOptionsPassword = password;
ManagementScope managementScope = new ManagementScope("\\\\" + host + "\\root\\cimv2", connectionOptions);
thismanagementClassScope = managementScope;
}
}
// 验证是否能连接到远程计算机
public static bool RemoteConnectValidate(string host, string userName, string password)
{
ConnectionOptions connectionOptions = new ConnectionOptions();
if (!hostEquals("") && !hostEquals("127001"))//判断是否为本地,本地不需要帐号和密码。这个问题搞了我很久
{
connectionOptionsUsername = userName;
connectionOptionsPassword = password;
}
ManagementScope managementScope = new ManagementScope("\\\\" + host + "\\root\\cimv2", connectionOptions);
try
{
managementScopeConnect();
}
catch(Exception ee)
{
}
return managementScopeIsConnected;
}
// 获取指定服务属性的值
public object GetServiceValue(string serviceName, string propertyName)
{
ManagementObject mo = thismanagementClassCreateInstance();
moPath = new ManagementPath(thisstrPath + "Name=\"" + serviceName + "\"");
return mo[propertyName];
}
// 获取所连接的计算机的所有服务数据
public string[,] GetServiceList()
{
string[,] services = new string[thismanagementClassGetInstances()Count, 4]; int i = 0;
foreach (ManagementObject mo in thismanagementClassGetInstances())
{
services[i, 0] = (string)mo["Name"]; services[i, 1] = (string)mo["DisplayName"];
services[i, 2] = (string)mo["State"];
services[i, 3] = (string)mo["StartMode"];
i++;
}
return services;
}
// 获取所连接的计算机的指定服务数据
public string[,] GetServiceList(string serverName)
{
return GetServiceList(new string[] { serverName });
}
// 获取所连接的计算机的的指定服务数据
public string[,] GetServiceList(string[] serverNames)
{
string[,] services = new string[serverNamesLength, 4];
ManagementObject mo = thismanagementClassCreateInstance();
for (int i = 0; i < serverNamesLength; i++)
{
moPath = new ManagementPath(thisstrPath + "Name=\"" + serverNames[i] + "\"");
services[i, 0] = (string)mo["Name"];
services[i, 1] = (string)mo["DisplayName"];
services[i, 2] = (string)mo["State"];
services[i, 3] = (string)mo["StartMode"];
} return services;
}
// 开启指定的服务
public string StartService(string serviceName)
{
string strRst = null;
ManagementObject mo = thismanagementClassCreateInstance();
moPath = new ManagementPath(thisstrPath + "Name=\"" + serviceName + "\"");
try
{
if ((string)mo["State"] == "Stopped")
{
//(bool)mo["AcceptStop"]
moInvokeMethod("StartService",null);
}
}
catch (ManagementException e) { strRst = eMessage; }
return strRst;
}
// 暂停指定的服务
public string PauseService(string serviceName)
{
string strRst = null;
ManagementObject mo = thismanagementClassCreateInstance();
moPath = new ManagementPath(thisstrPath + "Name=\"" + serviceName + "\"");
try
{
//判断是否可以暂停
if ((bool)mo["acceptPause"] && (string)mo["State"] == "Running")
{
moInvokeMethod("PauseService", null);
}
}
catch (ManagementException e)
{
strRst = eMessage;
}
return strRst;
}
// 恢复指定的服务
public string ResumeService(string serviceName)
{
string strRst = null;
ManagementObject mo = thismanagementClassCreateInstance();
moPath = new ManagementPath(thisstrPath + "Name=\"" + serviceName + "\"");
try
{
//判断是否可以恢复
if ((bool)mo["acceptPause"] && (string)mo["State"] == "Paused")
{
moInvokeMethod("ResumeService", null);
}
}
catch (ManagementException e)
{
strRst = eMessage;
}
return strRst;
}
// 停止指定的服务
public string StopService(string serviceName)
{
string strRst = null;
ManagementObject mo = thismanagementClassCreateInstance();
moPath = new ManagementPath(thisstrPath + "Name=\"" + serviceName + "\"");
try
{
//判断是否可以停止
//(string)mo["State"]=="Running"
if ((bool)mo["AcceptStop"])
{
moInvokeMethod("StopService", null);
}
}
catch (ManagementException e)
{
strRst = eMessage;
}
return strRst;
}
}
}
如果确定网络是正常,但是浏览器无法联网,可能原因有下面几种情况
第一,首先确定一点是单个网页打不开还是所有网页打不开。单个网页打不开可能是网站服务器出现问题,还有种可能是你的网络不稳定导致打不开的。如果是笔记本的话,试试使用手机流量热点共享无线,看下是否可以打开网站,如果可以打开网站,那就是你的宽带不稳定。如果是全部打不开那肯定是你电脑的问题,需要进行下一步操作。
第二,可能是本地网络不太稳定导致的,试试断电重启下光猫和路由器,设备经常不关机导致死机也是有可能的。
第三,可能是系统的网络配置有问题,可以尝试通过命令方式修复。
开始菜单右键搜索输入cmd,然后对住命令提示符鼠标右键以管理员方式运行,输入下面命令,注意每输入一条命令,敲一下回车
netsh int ip reset
netsh winsock reset
重启电脑,然后打开下软件看下是否可以联网使用。
第四,可能是你启用了局域网代理,关闭即可。
打开控制面板,Internet选项,连接,局域网设置,代理服务器设置,下面对勾都去掉,如下图所示
电脑打不开网页的解决方法:打开IE,点工具,点internet选项,点高级,点恢复默认设置,点保存,退出,重新打开IE。打开IE,刷新五次以上。
您可以打开浏览器依次打开工具→Internet选项→高级→设置,勾选在网页中播放声音,有的浏览器版面上有喇叭,查看是否开启。
网页打不开的解决办法有以下几种:由DNS错误导致的IE打不开网页,通常是由于DNS服务器自身问题,或者用户设定的dns服务器地址有误。
最常用的解决网站访问限制的方法就是使用代理服务器,它使你能轻松访问被阻止的站点。代理服务器充当用户和网站所在的服务器之间的中间源。用户向代理服务器发送请求,代理服务器将请求传送到该网站的服务器。
使用宽带上网的用户,dns是自动获取的,对于此类能上qq打不开网页的现象,可以使用ipconfig/flushdns命令来重新获取;或者将dns服务器地址设置为8(这是Google提供的免费域名解析服务器地址)。
电脑浏览器打不开网页的原因可能很多,以下是一些常见的问题和解决方法
0条评论