WCF Net.Tcp绑定到localhost地址会弹出Windows防火墙对话框,为什么?

时间:2015-10-14 00:16:12

标签: wcf tcp firewall

我有一个配置了Net.Tcp绑定的WCF自托管服务。此服务只需要侦听localhost端口,因此我的服务配置代码如下:

var endpointBaseAddressUri = new Uri(string.Format("net.tcp://localhost:{0}/{1}", availableTcpPort, parentID));
using (ServiceHost host = new ServiceHost(typeof(RenderOperation), new Uri[] { endpointBaseAddressUri }))
{
        var binding = new NetTcpBinding();
        binding.MaxReceivedMessageSize = MAXBUFFER;
        binding.ReaderQuotas.MaxArrayLength = MAXBUFFER;
        binding.ReaderQuotas.MaxStringContentLength = MAXBUFFER;
        host.AddServiceEndpoint(typeof(IMyService), binding, guid);

    host.Open();

    // Other logic goes here
}

问题是,当使用管理员帐户启动服务时,一切顺利。但是,如果我使用常规帐户登录到Windows并启动此WCF服务,则会出现以下Windows防火墙对话框:

enter image description here

我的问题是:

  1. 由于localhost是一个环回地址,为什么还会出现Windows防火墙对话框,要求获得环回地址的权限?
  2. 这是与Net.TCP侦听器适配器相关的Windows防火墙设置吗?摆脱此对话框的Windows防火墙设置的最佳做法是什么?
  3. 当常规用户启动WCF服务时,是否有任何解决方法不允许显示对话框?
  4. 谢谢!

0 个答案:

没有答案