无法连接到服务器

本文关键字:服务器 连接 | 更新日期: 2023-09-27 18:32:11

我在我的项目中使用了CassiniDevServer。我创建了一个CassiniDevServer类的对象,然后调用它的start()方法传递适当的参数。

服务器在浏览器中正确托管和呈现网页。但是过了一段时间,刷新时,浏览器说

无法连接到本地主机:端口号

似乎服务器在一段时间后停止了。为什么会这样?我怎样才能避免这种情况?是垃圾回收吗?

我有一个类MyCassiniDevUtil,它有以下方法:

public CassiniDevServer launchWebsite(string path, string navigate, int _portNo)
  {
    CassiniDevServer _server = new CassiniDevServer();  ///server
    cassiniServerList.Add(_server);
    _server.StartServer(path, _portNo, "/", "localhost");
    portNo = _portNo;
    System.Diagnostics.Process.Start("http://localhost:" + portNo + 
          "/" + navigate);
    return _server;           
  }

在调用代码中,我创建了一个 MycassiniDevUtil 对象,然后调用此方法。此方法返回对当前创建的服务器实例的引用。我在调用代码类中分配此引用。

所以实际上我确实引用了这两个类,但我仍然觉得它被垃圾收集了。或者如果没有,我不明白为什么几分钟后当我刷新浏览器时它显示无法连接到......

无法连接到服务器

我没有在CassiniDev;包中创建CassiniDevServer类的对象,而是创建了一个服务器类的对象,如下所示(因为它允许指定timeout属性)

        System.Net.IPAddress ip = System.Net.IPAddress.Parse("127.0.0.1");
        Server _server1 = new Server(_portNo, "/", path, ip, "localhost", 1800000);
        _server1.Start();            

_portNo是任何端口号 - 可能在未使用的端口号范围内。我动态和随机地生成了一个,如下所示:

        Random rn = new Random();
        int _portNo = rn.Next(1500, 4000);

path 是网站文件夹(包含 web.config、AppCode、AppData 的文件夹)的物理路径。

1800000 是 30 分钟的毫秒等效值。

/

指定将网站托管在地址 http://localhost:<_portNo>/

但是谁能澄清CassiniDevServer和CassiniDev包中的服务器类之间的区别。

您应该查看CassiniDevServer对象上的TimeOut选项。

这是服务器在自行关闭之前处于空闲状态的时间量(以毫秒为单位)。 我没有看到您在哪里设置它,因此,很可能服务器本身正在关闭。

现在,只要您保持对它的引用,它就不会被垃圾回收。 但由于上述原因,这是一个红鲱鱼。