我创建了一个使用 WCF wsdualhttpbinding 回调功能的 Windows 服务(服务器)和一个 WPF(客户端)。两个软件之间的一切都正常工作,但我遇到的问题是客户端需要提升到管理员权限才能工作(这是可以理解的,因为它必须打开端口才能与服务器通信)
有什么方法可以将客户端配置为无需提升即可工作?或者也许创建一个一次性的永久连接,以便客户端不需要一直被提升?
我的想法和谷歌搜索词用完了..
更新
我找到了解决方案。如果我可以遵循另一个最佳实践,请纠正我!
我向运行 netsh 的客户端应用程序添加了“启用”和“禁用”按钮,以打开(或关闭)和保留端口。
使能够
Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", @"http add urlacl url=http://+:" + PortNumber + @"/ user=DOMAIN\username");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();
禁用
Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", "http delete urlacl url=http://+:" + PortNumber + "/");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();