调用main函数重启应用程序

时间:2015-08-17 06:37:07

标签: c# service

我有一个需要整天运行的应用程序,但有时会出现异常,然后应用程序崩溃。如果发生这种情况,连接到应用程序的设备将无法正常工作。

我需要做的是在崩溃时重新启动应用程序,但我不想再制作另一个程序。

这就是我认为我需要做的事情:

static void Main(string[] args)
    {
        try
        {
            if (!Environment.UserInteractive)
            {
                ServiceBase.Run(new WebDaemonService(HttpClass.StartListening));
            }
            else
            {
                HttpClass.StartListening();
            }
        }
        catch(Exception ex)
        {
            Restart();
        }               
    }

但是如何制作重启功能,我是否只是再次调用主类,或者我是否需要做其他事情。

try中的if else是检查应用程序是否需要作为Windows服务或应用程序启动。

有人可以向我解释如何重新启动功能吗?

1 个答案:

答案 0 :(得分:0)

在当前域的ProcessExit事件上添加事件处理程序。

acl alloweddomains dstdomain "<path>/domains.txt"

See doc at MSDN

从那里重启您的应用程序或服务。如果这是Windows服务,您可以将其设置为在Services.msc窗口崩溃时重新启动。

代码示例:

cache_peer next_server_ip parent 80 0 no-query originserver name=allowserver
cache_peer_access allowserver allow alloweddomains 
cache_peer_access deny all