I found the problem. Actually both pieces of code work now. The problem was that when I run the SimpleXMLRPCService in a Windows Service, the STDERR needs to be redirected to a real file. I guess some kind of buffer overflow occurs when you don't do this.
I added the following lines: <snip> def SvcStop(self): sys.stdout = self.stdout sys.stderr = self.stderr ..... def SvcDoRun(self): self.stdout = sys.stdout self.stderr = sys.stderr sys.stdout = file("c:/temp/my.log", "a+", 0) sys.stderr = sys.stderr .... </snip> On11/25/06, Gabriel Genellina <[EMAIL PROTECTED]> wrote: > At Thursday 23/11/2006 06:52, Rudy Schockaert wrote: > > >After some Googling I found a post of someone who wanted to do exactly > >as what I want to do now. > >There is however a problem in his code that makes the service fails > >after the first connection. I slightly modified his code and now I can > >run the service longer before I run into trouble. > >I then tried making the SimpleXMLRPCServer multi-threaded, hoping the > >problem would disappear, but no avail. > >The code is as follows: > >The commented part in the while loop is from the original code. > > The original (commented-out) code should be fine. You have to wait > for 2 events: the service stop signal, or an incoming connection. > Anyway, you always have to catch exceptions; override handle_error at least. > > Another approach (not involving events) would be to set a (not so > big) timeout on the socket, and test for self.stop_requested on each > iteration. > > > server = ThreadedSimpleXMLRPCServer(("", 8080)) > > object = OBJECT() > > server.register_instance(object) > > self.socket = server.socket > > > > while 1: > > #win32file.WSAEventSelect(server, > >self.hSockEvent,win32file.FD_ACCEPT) > > #rc = > >win32event.WaitForMultipleObjects((self.hWaitStop,self.hSockEvent), 0, > >win32event.INFINITE) > > #if rc == win32event.WAIT_OBJECT_0: > > # break > > #else: > > # server.handle_request() > > # win32file.WSAEventSelect(server,self.hSockEvent, 0) > > # #server.serve_forever() ## Works, but breaks the > > > -- > Gabriel Genellina > Softlab SRL > > __________________________________________________ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam ¡gratis! > ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar > > -- http://mail.python.org/mailman/listinfo/python-list