【发布时间】:2019-11-09 04:05:30
【问题描述】:
我们使用的是 Windows Server 2016。我们有客户端/Web 应用程序来检查服务器是否正在运行(未停止),并相应地在 Web/客户端应用程序页面上显示按钮已连接。
我们的 signalR API 在 iis 服务器上托管为默认网站,如果我们停止它,仍然会从 signalR API 服务器获得响应。
注意:它仅在我们停止整个 iss 服务器或创建单独的 Web 应用程序而不是默认网站时才起作用。
<input type="text" id="msg" value=" " />
<input type="button" id="send" value="send" />
<div id="message">
</div>
<script src="Scripts/jquery-1.8.3.min.js"></script>
<script src="Scripts/jquery.signalR-1.1.3.min.js"></script>
<script>
var connection = $.hubConnection('http://websitename/WebApi/signalr');
//connection.logging = true;
var proxy = connection.createHubProxy('SignalRHub');
console.log(connection);
console.log(proxy);
connection.stateChanged(function (change) {
console.log(change);
console.log($.signalR.connectionState);
if (change.newState === $.signalR.connectionState.reconnecting) {
console.log("liveFeed is reconnecting!");
}
else if (change.newState === $.signalR.connectionState.connected) {
console.log("liveFeed is connected!");
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
}
while (change.newState === $.signalR.connectionState.disconnected) {
console.log("in while loop")
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
}
});
proxy.on('setRealTime', function (obj) {
var text = $('#message').html();
$('#message').html(JSON.stringify(obj));
});
connection.disconnected(function (data) {
console.log(data);
alert('Server has disconnected');
});
connection.start().done(function (data) {
console.log('Now connected ', data);
proxy.invoke('GetRealTime');
}).fail(function (er) {
console.log(er);
});
</script>
【问题讨论】:
-
您能否发布更多关于您如何在 IIS 中托管 signalR 应用程序的详细信息?托管在 IIS 中的默认 web sie 上的 signalR 应用程序是否停止了默认网站?
标签: asp.net-mvc iis signalr