Warning: Persistent ASP 0240 Bug in ActivePerl 5.8

Discussion in 'Perl Misc' started by David Dickinson, Dec 23, 2006.

  1. Hello,

    Running the following ASP web page on any version of ActivePerl 5.8.x under
    any version of Win32/IIS returns an error:

    ----- BEGIN ASP CODE -----
    <%@ LANGUAGE="PerlScript" %>
    <%
    $Response->End();
    %>
    ----- END ASP CODE -----

    The script will run correctly the first time but, if the page is refreshed
    in the web browser, the following error message is displayed:

    ----- BEGIN ERROR MESSAGE -----
    Active Server Pages error 'ASP 0240'

    Script Engine Exception

    /test.asp

    A ScriptEngine threw exception 'C0000005' in
    'IActiveScript::SetScriptState()' from 'CActiveScriptEngine::ReuseEngine()'.
    ----- END ERROR MESSAGE -----

    Refreshing the web page in the browser allows for normal continuation. A
    VBScript version of the same code does not result in this error message.

    This problem has dire consequences. Many scripts which use, for instance,
    $Response->Redirect() to a page that contains a $Response->End() can die.
    All that the web site visitor sees is the error message. They don't know
    that they can simply refresh the web page to get past the error.

    This bug (ActiveState Bug 65223) has, as far as I know, existed in every
    version of ActivePerl 5.8.

    --
    David Dickinson
     
    David Dickinson, Dec 23, 2006
    #1
    1. Advertisements

  2. Toby Ovod-Everett

    Toby Ovod-Everett

    Joined:
    Jan 19, 2016
    Messages:
    1
    This reply comes 9 years later, but hopefully it will be helpful for someone.

    I recently ran into this issue when assisting with the porting of a ASP application that uses PerlScript, and discovered that the issue is still present in ActivePerl 5.16.3. I noticed that the reported error message is in CActiveScriptEngine::ReuseEngine, and so figured if there was a way to prevent reuse of script engines, that might serve as a workaround without requiring coding changes or extensive testing.

    Sure enough, setting "Maximum Script Engines Cached" (scriptEngineCacheMax) to 0 has the effect of disabling script engine caching, which in turn means no reuse. Since every call gets a fresh script engine, the bug in CActiveScriptEngine::ReuseEngine is no longer exposed. It appears that the setting is a server level property (the setting is visible, but grayed out, at the application level). See https://www.iis.net/configreference/system.webserver/asp/cache for additionaly information.

    Toby Ovod-Everett
     
    Toby Ovod-Everett, Jan 19, 2016
    #2
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?dmJNYXJr?=

    There seems to be a bug in persistent cookies.

    =?Utf-8?B?dmJNYXJr?=, Aug 8, 2005, in forum: ASP .Net
    Replies:
    0
    Views:
    376
    =?Utf-8?B?dmJNYXJr?=
    Aug 8, 2005
  2. gk
    Replies:
    7
    Views:
    1,257
    Tom Anderson
    Oct 12, 2010
  3. bbxrider

    asp and activeperl on same iis5.0 machine

    bbxrider, Dec 3, 2003, in forum: ASP General
    Replies:
    2
    Views:
    251
    bbxrider
    Dec 3, 2003
  4. David
    Replies:
    1
    Views:
    596
    Jeff Cochran
    Apr 6, 2004
  5. Ted
    Replies:
    7
    Views:
    777
    Sisyphus
    Dec 16, 2006
Loading...

Share This Page