I\'m trying to execute classic ASP pages on a windows 2008 64 bit R2 box.
Initially the problem was with registering dlls : That\'s now fixed. Register DLL file on W
I had exactly the same error.
In my case the C0000005 error was caused by a missing dependancy.
ProcessMonitor help me finding it. (Filter by process, and check "Name not found")
Copying the needed file in the right place solved my problem. (In my case VB6FR.dll was a needed dependancy for vb6 in french.)
I'm adding this answer here, though I realise this is very much later than when the question was first answered. I'm putting the answer here in case it saves anyone else the hassle I've just been through.
I too was getting this error on my ASP page after I had re-installed Windows 10. Previously on my localhost IIS setup, the same page did not error. However - now it did - with the following error:
Active Server Pages error 'ASP 0115' Unexpected error index.asp
A trappable error (C0000005) occurred in an external object. The script cannot continue running.
I tried lots of things to try and sort it, such as:
My problem was with an SQL Insert - when it ran, I got the error.
This is a cut down version of it:
sql = ""
sql = sql & " INSERT INTO my_table ( "
sql = sql & " card_sender, "
sql = sql & " senders_email, "
sql = sql & " recipients_email, "
sql = sql & " card_body, "
sql = sql & " session_id, "
sql = sql & " replyID) VALUES ( "
sql = sql & " ?, "
sql = sql & " ?, "
sql = sql & " ?, "
sql = sql & " ?, "
sql = sql & " ?, "
sql = sql & " ?) "
Set stmt = Server.CreateObject("ADODB.Command")
stmt.ActiveConnection = oConn
stmt.Prepared = true
stmt.commandtext = sql
stmt.Parameters.Append stmt.CreateParameter("@001_card_sender", adVarChar, adParamInput, 255, card_sender)
stmt.Parameters.Append stmt.CreateParameter("@002_senders_email", adVarChar, adParamInput, 255, senders_email)
stmt.Parameters.Append stmt.CreateParameter("@003_recipients_email", adVarChar, adParamInput, 255, recipients_email)
stmt.Parameters.Append stmt.CreateParameter("@004_card_body", adLongVarChar, adParamInput, 256665, card_body)
stmt.Parameters.Append stmt.CreateParameter("@sessionsessionID", adVarChar, adParamInput, 255, session.sessionID)
stmt.Parameters.Append stmt.CreateParameter("@replyID", adVarChar, adParamInput, 255, session("replyID"))
stmt.Execute
Set stmt = Nothing
Via a process of building up the SQL and finding which line triggered the error, I found this line caused the problem:
stmt.Parameters.Append stmt.CreateParameter("@replyID", adVarChar, adParamInput, 255, session("replyID"))
In my example, the session("replyID")
value was not set, and that triggered the error.
When I changed the code to check if the session variable was set, it fixed the issue:
...
foo = session("replyID")
if foo = "" then foo = 1
...
stmt0003.Parameters.Append stmt0003.CreateParameter("@replyID", adVarChar, adParamInput, 255, foo)
More testing confirmed that the error would happen for any variable which was null, so I had to add in an if statement for every variable and set it to something if it was null, to prevent these errors which I didn't used to get on a previous Windows 10 installation on the same PC.
After spending about a day working on it, it was a relief to get to the bottom of it.
I had same error while loading the csv file data more than once. Step 1 - Firstly create a temp table to transfer the csv data into temp table and then move to main table and delete temp table once data is moved. This has to be done programmatically.
Step 2 - Go to mysql and select the database and use this query ( SHOW FULL PROCESSLIST; ) use without brakets. this will show you status of running objects.If you find any object with status as "Sleep" this needs to be cleared before 2nd attempt to upload the file. usually the default wait time is about 28000 sec. You need to reduce it as per requirement. Code to reduce the wait time is ( SET GLOBAL wait_timeout=5; ). Use without brakets. Use this is mysql. this will re-set your global wait time to 5 sec, (change as per your needs). This should resolve your problem. All the best.
I'm running some very old ASP code in IIS on a new Windows 10 1803 installation, and had it briefly running correctly then started to get this error message after running a repair in Office to fix an Outlook issue.
In this case, reinstalling the Microsoft Access Database Engine fixed the problem.
You're not going to fix this in ASP. The C0000005 is the Access Violation Exception. This occurs when code attempts to read memory that it hasn't allocated.
The dll is doing something bad when it loads or during the construction of the object.
Have you tested the dll with a simple .vbs file?
I had the same problem happen sometime after KB4093114 was installed on a server. (I'm not 100% sure that the KB caused the problem but I suspect so because the scripting engine was updated.)
The problem was caused by a recordset that output a varchar(max) field to the markup. Even though the error does not provide a line number, I was able to pinpoint it to the outputting of the varchar(max) field through trial and error.
<%
...
rs.Open "SELECT LongDescription FROM Table1"
while (not rs.EOF)
%> <p><%= rs("LongDescription") %></p> <% ' ERROR HAPPENS BECAUSE OF THIS LINE
rs.MoveNext
wend
%>
Removing that line fixes the problem. Also, casting the field to a non-max varchar also fixes it:
rs.Open "SELECT LongDescription = Cast(LongDescription as varchar(4000)) FROM Table1"
To make matters worse, I found that once the error happens, even if you fix it you need to recycle the app pool to make the error go away.