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服務調用永遠不會到達服務器,並且請求超時。