【问题标题】:Inbound rule in firewall only works with Admin privileges防火墙中的入站规则仅适用于管理员权限
【发布时间】:2023-03-29 10:24:02
【问题描述】:

我正在尝试在本地 wifi 网络上托管一个带有 WPF 的网络服务器,并公开另一个设备(在我的例子中是 Android)可以在连接到同一个 wifi 网络时调用的 web 服务。我在防火墙上为我正在使用的端口创建了一个入站规则。仅当使用“以管理员身份运行”启动 Windows 应用程序时,Web 服务调用才会进行 有没有办法在没有管理员权限的情况下做同样的事情? 这是我的代码 -

public class SelfHost
{
    WebServiceHost Host;
    public void HostServer()
    {
        var hostIPadd = Util.GetLocalHostIP(); //This returns something like "http://192.168.1.2" 
        Values.SERVER_PORT_VALUE = "55000";

        var uri = new Uri(hostIPadd + ":" + Values.SERVER_PORT_VALUE);

        Host = new WebServiceHost(new Service{...}, uri);

        //Start host
        ServiceEndpoint ep = Host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "");
        Host.Open();
    }
}


public partial class MyWindow : Window
{

    public MyWindow()
    {
        InitializeComponent();
        StartHost();
    }

     private void StartHost()
    {
        var host = new SelfHost();

        var thServer = new System.Threading.Thread(host.HostServer);
        thServer.IsBackground = true;
        thServer.Start();
    }
}

我在防火墙中使用这些属性创建了入站规则
协议类型 - TCP
本地端口 - 特定端口 - 55000
个人资料 - 公开
操作 - “允许连接”
Programs - “所有满足指定条件的程序”

如果应用程序未在 Admin 中运行,我不太明白为什么防火墙会忽略此异常。 WebServiceHost 对象即使不在管理员模式下也运行良好,没有错误。 但是 webservice 调用永远不会到达服务器并且请求超时。

【问题讨论】:

    标签: c# wpf self-hosting windows-firewall


    【解决方案1】:

    与防火墙无关,您无法在 wpf 应用程序中打开 http 链接 - 出于安全原因

    see that

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多