SignalR 示例仅适用于本地主机

SignalR Example only working on localhost

我正在关注这个 tutorial

遗憾的是,我只能通过本地主机或我的 ip 地址从我的本地计算机访问该站点。我将 'localhost' 的每个实例都更改为 http://*:Port.

我还将 IIS Express 中的 applicationhost.config 更改为:

          <site name="JavascriptClient(1)" id="13">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="H:\Downloads\SignalR Self-Host Sample\C#\JavascriptClient" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:31072:*" />
            </bindings>

另外,我 运行宁 Visual Studio 作为管理员。如果我试图从另一台机器访问服务器,我会超时。我如何从另一台 PC 连接?

我只想 运行 Websocket 的服务器部分,以便我的 Cobol-Client 可以访问外部 Windows-Host 进行通信。

禁用防火墙是问题的关键。非常感谢斯塔福德·威廉姆斯!

浏览器缓存 default.html 似乎也是页面的问题。将 url 更改为 "http://*:8080" 适用于 signalR 主机端。 我还在 default.html java-脚本部分

中更改了 SignalR 集线器 url
<script src="http://10.1.4.1:8080/signalr/hubs"></script>
<!--Add script to update the page and send messages.-->
<script type="text/javascript">
    $(function () {
        //Set the hubs URL for the connection
        $.connection.hub.url = "http://10.1.4.1:8080/signalr";

需要我这里的IP。同样在chrome(control + f5)中刷新页面需要重新编译后才能实际更改default.html中的URL。

如果您的应用程序在 Windows 服务器中,只需启用“WebSocket 协议”。

“添加或删除程序”>“打开或关闭 Windows 功能”>“Web 服务器 (IIS)”>“Web 服务器”>“应用程序开发”>“WebSocket 协议”。