我们正在使用 signalR 而不是原始的 WCF 更新现有的 Windows 桌面软件。
在开始学习 SignalR 时,我们遇到了服务器问题,该服务器以 uri http://localhost:8080
启动良好,但如果我使用 http://*:8080
或 http://MyIPServer:8080
直到我在管理员下运行该程序后它才起作用。
在没有管理员权限的情况下正常运行时,我在webApp.start
中出现错误(发生了异常,仅此而已!)。
我在 Windows 防火墙中添加了一条过滤规则来接受所有 8080
端口入站,但没有取得更多成功
代码很简单(来自微软示例):
const string ServerURI = "http://localhost:8080";
private void StartServer()
{
try
{
SignalR = WebApp.Start(ServerURI);
}
catch (TargetInvocationException ex)
{
WriteToConsole("A server error: " + ex.Message );
this.Dispatcher.Invoke(() => ButtonStart.IsEnabled = true);
return;
}
this.Dispatcher.Invoke(() => ButtonStop.IsEnabled = true);
WriteToConsole("Server started at " + ServerURI);
}
有什么想法吗?
感谢您的帮助。
最佳答案
查看 URL ACL。您可以在命令行上提供启动服务器的权限,如下所示:
netsh http add urlacl http://+:8080/ user=Everyone
您可以使用每个人(必须本地化!)或特定用户。
关于c# - 如果不以管理员身份运行,SignalR、WPF 服务器不会启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895743/