1
我想在本地wifi网络上使用WPF托管一个web服务器,并暴露一个web服务,在连接到同一个wifi网络时,另一个设备(在我的情况下是Android)可以调用。我在防火墙上为我使用的端口创建了一个入站规则。使用“以管理员身份运行”启动Windows应用程序时,只能通过webservice调用 如果没有管理员权限,我可以这样做吗? 这里是我的代码 -防火墙中的入站规则只适用于管理员权限
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
概况 - 公共
行动 - “允许连接“
程序 - ”符合指定条件的所有程序“
我不太清楚为什么防火墙忽略此例外,如果该应用程序未在管理员中运行。 WebServiceHost对象即使不处于管理员模式也可以正常运行,没有错误。 但web服务调用永远不会到达服务器,并且请求超时。