在做将开发好的.net core程序(SOCKET程序)发布到Linux服务器上面的时候,我们经常要用到远程联调。由于是初次开发,老是把一些发布好的程序上传到Linux文件夹下面,放了好几个,生怕Linux服务器上面的.net core程序运行不起来。可是在联调过程中经常发现无法命中断点的现象,要么就是附加到SSH进程中之后莫名其妙的系统奔溃。无奈重新启动Linux服务器也一样没用。
痛定思痛,决定尝试只在Linux发布程序,本地只上传代码就行。
于是新建了一个文件夹项目,写好服务端代码,把本地代码和文件夹等文件上传,不在本地发布了,上传到服务器再发布。于是乎,上传之后,kill -s 9 掉Linux服务器的的dotnet进程,先把这些旧的dotnet进程清理干净再说。然后再项目文件夹下面dotnet publish,再dotnet run。
之后小心翼翼的试着将这个程序SSH到本地进程,(注意:dotnet进程要选择 dotnet exec这个,而且要保证是你本地正在跑的程序,别弄错了)。
本地启动客户端…………断点终于进来了,看来,之前旧版本的那些发布后的代码乱放在文件夹里的确是一个干扰。就应该是在本地写好干净的代码,拿到服务器上面再发布。
PS:SOCKET的服务端写的是当前运行服务端的IP,经过测试,0.0.0.0和192.168.0.2这样的IP地址是可以连接的,而127.0.0.1却连接不上,这一点大家要注意!