【发布时间】:2013-12-03 19:37:03
【问题描述】:
根据我找到的示例http://weblog.west-wind.com/posts/2013/Sep/04/SelfHosting-SignalR-in-a-Windows-Service,我正在 Windows 服务中实现 SignalR 主机服务器。
一切正常,但如果我尝试:
SignalR = WebApp.Start<SignalRStartup>("http://*:8080/");
我得到一个类型为 `
的未处理异常'System.UriFormatException'` occurred in System.dll
Additional information: Invalid URI: The hostname could not be parsed.
如果我使用它会很好用
SignalR = WebApp.Start<SignalRStartup>("http://localhost:8080/");
可能是一个愚蠢的假设,但根据我从中获取的文章,我假设 *:8080 语法可以工作。我的问题是,我是否遗漏了什么或者文章不正确并且这种格式不起作用?
【问题讨论】:
-
看来应该可以了,见HttpListener;它是否也拒绝“http://+:8080/”?这可能是其他地方造成的吗?您使用的自托管库是什么版本的?
-
是的,* 和 + 都被拒绝。就像完全省略主机名一样。问题是,如果您尝试从远程机器访问 Owin 托管服务,或者甚至在同一个机器上但通过机器名称或 IP 地址访问,它不会连接并且您会得到一个
HTTP 400 The request hostname is invalid.