码迷,mamicode.com
首页 > 其他好文 > 详细

普通用户如何启动WCF服务

时间:2016-05-13 17:21:24      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

做Winform项目时,部署到客户机上有两个应用程序,Host和Client,在Host上运行着WCF服务供Client调用。平时现在在测试的时候都没发现有问题,但是当安装到客户的正式环境时发现服务启动失败。如下图

技术分享

可以很明显的知道是由于没有管理员权限造成的。那么是否WCF服务一定要在管理员权限下才能打开呢?查阅了相关资料,发现如下解决方法。

    public static class NetAclChecker
    {
        public static void AddUrlAclToEveryOne(int port)
        {
            string args = string.Format(@"http add urlacl url=http://+:{0}/ user=everyone", port);

            var psi = new ProcessStartInfo("netsh", args);
            psi.Verb = "runas";
            psi.CreateNoWindow = true;
            psi.WindowStyle = ProcessWindowStyle.Hidden;
            psi.UseShellExecute = true;

            Process.Start(psi).WaitForExit();
        }
    }
 class Program
    {
        static void Main(string[] args)
        {
            int port = 9090;

            NetAclChecker.AddUrlAclToEveryOne(port);
        }
    }

在管理员权限下运行上述程序,就已经把9090端口成功添加到监听列表中,然后在普通用户权限就可以胜利开启WCF服务。

技术分享

 

普通用户如何启动WCF服务

标签:

原文地址:http://www.cnblogs.com/JustYong/p/5489901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!