ASP KeyboardInterrupt errors

Max M maxm at mxm.dk
Tue Jun 24 08:44:26 EDT 2003


Steve Holden wrote:
> [repost due to non-appearance of mailed posting]
> 
> I'm mailing the list in the hope that somebody has come up with a solution
> to the occasional spurious "Keyboard Interrupt" exception that gets raised
> in the ASP environment. It's a little awkward to explain to my client why
> his COM server is failing this way, and the logic of the application makes
> it difficult to trap the exception and repeat what's already been done.
> 
> I can't find anything with Google that makes it look like this problem is
> still being addressed.


I have saved a hack for this:


From:
"Chris Prinos" <cprinos at foliage.com>
Date:
Thu, 30 May 2002 00:21:56 GMT
Newsgroups:
comp.lang.python

I had the same issue with my IIS system, and had to use a workaround that
disables the KeyboardInterrupt from being processed.   The code I use is
shown below.

see http://mail.python.org/pipermail/python-list/2001-April/039881.html and
http://mail.python.org/pipermail/python-list/2002-April/099002.html for an
explanation


Chris
----------------------------------------------------------------------------
----------------


<!--
These first two script blocks are needed because IIS looks for a SCRIPT
block in the default scripting language of the server. That could be
JScript or VBScript, but it won't be Python.

This is only a problem for this global.asa file.
-->
<SCRIPT LANGUAGE=Jscript RUNAT=Server>
function dummy() {}
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub dummy2
  ignore = "me"
End Sub
</SCRIPT>

<SCRIPT LANGUAGE=Python RUNAT=Server>
def Application_OnStart():
     # this signal code is a workaround for a bug that causes
     # Ctl-C keyboard interrupts to be sent to the python activex engine.
     # Not sure if this is a problem with ASP, or python, but if the
     # handler is not provided, KeyboardInterrupts will pop up in the most
     # inoportune places.
     import signal
     def noOp(a,b): pass
     signal.signal(signal.SIGINT, noOp)
</SCRIPT>





More information about the Python-list mailing list