我有一个在IIS 8.5中托管的网站。它使用signalR向浏览器发送和接收消息。浏览器定期(3秒)调用名为Ping()
的服务器方法,并在客户端方法中在浏览器中收到响应。
我的服务器方法是这样的:
public void Ping()
{
Clients.Caller.SendAck("OK");
}
一切正常。但出于测试目的,我通过停止WebSite(而不是IIS或应用程序池)来模拟连接失败。奇怪的是,即使网站停止,浏览器中的客户端方法也会正常调用,就像网站运行时一样。并且连接状态是“已连接”而不是断开连接。
在我的debbuging过程中,我试图更改ISS中的网站端口。我使用端口80,然后将其更改为端口83.现在,当我停止网站时,不会调用服务器方法,并且正如预期的那样断开新状态。
那么为什么80端口的行为与其他端口不同?是否有任何关于此的问题/限制?
更多详情:
我可以添加更多代码,但我不认为问题出现在我的代码中,因为当我更改80以外的端口时,模拟工作正常......