【发布时间】:2012-06-01 06:22:23
【问题描述】:
我正在开发 .Net 4.0 C# Windows Forms 应用程序,该应用程序在某个预定义端口(例如 12345)上托管 WCF 服务。我们有另一个与此 WCF 服务对话的 iPad 应用程序 - 此连接被 Windows 防火墙阻止。我的用户总是遇到麻烦,因为他们必须记住将此应用程序添加到例外列表等 - 这会导致挫败感。
需要什么才能让 Windows 像下面的屏幕截图一样为我的应用显示弹出窗口,以使其更加用户友好?
更新 - 我知道我可以在 Windows 防火墙中以编程方式更新规则。但是,这需要管理员权限,这并不总是可行的。例如,我正在考虑将来某个时候 ClickOnce 部署 - 不确定它将如何与此一起使用。所以我仍然想知道我应该怎么做才能得到那个对话框。
解决方案: 感谢@alexw 下面的回答,我能够使用这个简单的代码获得对话框:
IPAddress ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 12345);
TcpListener t = new TcpListener(ipLocalEndPoint);
t.Start();
t.Stop();
还有更多 - 不可能将 WCF 服务的此弹出窗口设为 documentation states(见底部):
WCF 的自托管 HTTP 寻址未集成到 Windows 防火墙。必须将例外添加到防火墙配置中 允许使用特定 URL 的入站连接。
【问题讨论】:
标签: c# wcf windows-firewall