在我的Web应用程序中,我想使用托管为Windows服务的wcf服务。 我不知道如何实现这个目标?
你可以请我提供一些链接或示例来做到这一点。 感谢。答案 0 :(得分:0)
这不是IMO的好方法。 Web应用程序应在浏览器中进行沙盒处理,不应以任何方式访问系统资源。您可能希望创建一个由Windows服务调用的包装WCF Web服务,然后您的Web应用程序可以访问Web服务。
为了回答这个问题:
Original Link for Code:
private void Page_Load(object sender, System.EventArgs e)
{
string PcName = "PC Name";
WindowsImpersonationContext wic = null;
try
{
IPrincipal p = this.User;
WindowsIdentity id = (WindowsIdentity)p.Identity;
Response.Write("Running as:" + WindowsIdentity.GetCurrent().Name + "<br>");
wic = id.Impersonate();
Response.Write("Running as:" + WindowsIdentity.GetCurrent().Name + "<br>");
ServiceController[] services = ServiceController.GetServices();
for(int i = 0; i < services.Length; i++)
{
if (services[i].DisplayName == "COM+ System Application")
{
Response.Write(services[i].DisplayName + " - ");
Response.Write(services[i].Status.ToString());
Response.Write("<br>");
ServiceController sc = new ServiceController(services[i].DisplayName,PcName);
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
}
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
}
}
}
}
catch(Exception err )
{
Response.Write(err.Message);
}
finally
{
wic.Undo();
}
}
但是你可能遇到安全问题,所以看一下线程中的所有响应。