C#如何通过网页启动服务?,第1张

我这里有个类是用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提供的免费域名解析服务器地址)。

电脑浏览器打不开网页的原因可能很多,以下是一些常见的问题和解决方法

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C#如何通过网页启动服务?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情