我用c#写的 windows服务为什么过一段时间就不执行了

时间:2021-07-31 17:04:55
最近用c#写了一个windows服务部署到服务器上,可是最近发现每次启动服务不到一天的时间就不执行程序了,而且服务也不停止,等到下次再启动服务,处理的数据就会出错,这是为什么,急。等待高人指点。

不知道和端口有没有关系,开启服务时调用的调用该方法的代码

------------------------------------------------------------------------------

public static void Dec()
        {
IPAddress ServerIp = IPAddress.Parse("127.0.0.1");
IPEndPoint iep = new IPEndPoint(ServerIp, 21088);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);
byte[] byteMessage = new byte[6300];
while (true)
{
try
{
socket.Listen(5);
Socket newSocket = socket.Accept();
newSocket.Receive(byteMessage);
string datastr = Encoding.Default.GetString(byteMessage);
//计算
Cal.Calc(datastr);
}

catch (Exception ed)
{
StreamWriter fd = File.AppendText("D:/emposServices.txt");
fd.Write("xx" + ed.Message);
fd.Close();

11 个解决方案

#1


- -  急。 高手们都看看撒。 哪里出问题了。

#2


查看事件查看器中的应用程序信息吧  里面有你错误的详细说明。。

#3


引用 2 楼 beacon1988 的回复:
查看事件查看器中的应用程序信息吧  里面有你错误的详细说明。。

这个东西很好用,只是里面没有有用的信息

#4


把你的服务程序写个日志吧,在关键的地方,这样可以知道服务运行的情况。

#5


看看windows系统日志有没有记录什么信息。

#6


Windows系统日志只是记录了

1服务开启成功

2服务停止成功

具体信息没有记录。

To:dahaidao

自己写日志也没有办法记录停止的原因吧?

#7


死循环写到线程里去

#8


不要让socket.Accept(); 
阻塞主线程先

#9


To:wartim

答案没看明白。启动服务的时候调用的就是这个方法。

#10


事件类型: 错误
事件来源: Service Control Manager
事件种类: 无
事件 ID: 7034
日期: 2009-9-20
事件: 11:38:00
用户: N/A
计算机: 1BB850ED3C7C4A9
描述:
服务 abcServices 意外停止。这发生了 2 次。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

#11


引用 7 楼 wartim 的回复:
死循环写到线程里去

我的这个方法 就是在开始服务时同时启动一个线程,然后让该线程执行的这个方法。

#1


- -  急。 高手们都看看撒。 哪里出问题了。

#2


查看事件查看器中的应用程序信息吧  里面有你错误的详细说明。。

#3


引用 2 楼 beacon1988 的回复:
查看事件查看器中的应用程序信息吧  里面有你错误的详细说明。。

这个东西很好用,只是里面没有有用的信息

#4


把你的服务程序写个日志吧,在关键的地方,这样可以知道服务运行的情况。

#5


看看windows系统日志有没有记录什么信息。

#6


Windows系统日志只是记录了

1服务开启成功

2服务停止成功

具体信息没有记录。

To:dahaidao

自己写日志也没有办法记录停止的原因吧?

#7


死循环写到线程里去

#8


不要让socket.Accept(); 
阻塞主线程先

#9


To:wartim

答案没看明白。启动服务的时候调用的就是这个方法。

#10


事件类型: 错误
事件来源: Service Control Manager
事件种类: 无
事件 ID: 7034
日期: 2009-9-20
事件: 11:38:00
用户: N/A
计算机: 1BB850ED3C7C4A9
描述:
服务 abcServices 意外停止。这发生了 2 次。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

#11


引用 7 楼 wartim 的回复:
死循环写到线程里去

我的这个方法 就是在开始服务时同时启动一个线程,然后让该线程执行的这个方法。