f*****e 发帖数: 5177 | 1 I have a windows service which checks license in OnStart(). If the license
is not there, it should stop. I have tried several different ways to do that
, such as throw an exception. It works. The only problem is that it pops up
a dialog saying "service on local computer started then stopped. xxxxx" and
user need to click OK to discharge the message dialogue. Is there a way to
stop the service w/o any front end popup? | o****e 发帖数: 916 | 2 what's in your servicebase.OnStart? suppose you kick of a new thread in that
method or do indefinite wait in that loop. if you do the license check in
that main thread and exit the main thread if the license is invalid, would
the service be stopped? anyway, you can always handle any unhandled
exception in Appdomain.CurrentDomain.UnhandledException (except for some
exception originated from unmanaged stack)
not familiar with service programming, just my guess | f*****e 发帖数: 5177 | 3 Solved. The problem is that I start the service by calling OnStart() and
then stop it because license check failed. Windows thinks the service
started and then immediately stopped is a application failure and popup the
message box. The solution is to start a work thread, wait for 10 seconds
then call Stop().
that
【在 o****e 的大作中提到】 : what's in your servicebase.OnStart? suppose you kick of a new thread in that : method or do indefinite wait in that loop. if you do the license check in : that main thread and exit the main thread if the license is invalid, would : the service be stopped? anyway, you can always handle any unhandled : exception in Appdomain.CurrentDomain.UnhandledException (except for some : exception originated from unmanaged stack) : not familiar with service programming, just my guess
|
|