最近用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();

解决方案 »

  1.   

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

  2.   

    Windows系统日志只是记录了1服务开启成功2服务停止成功具体信息没有记录。To:dahaidao自己写日志也没有办法记录停止的原因吧?
      

  3.   

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

  4.   

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

  5.   

    事件类型: 错误
    事件来源: Service Control Manager
    事件种类: 无
    事件 ID: 7034
    日期: 2009-9-20
    事件: 11:38:00
    用户: N/A
    计算机: 1BB850ED3C7C4A9
    描述:
    服务 abcServices 意外停止。这发生了 2 次。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。