Puncte:1

Eroare: fișierul home.asp Eroare neașteptată. A apărut o eroare de captare (C0000005) într-un obiect extern. Folosind conectorul ODBC

drapel in

Cum pot face ca pool-ul meu de aplicații să nu se blocheze pe mine?

fundal

Totul a funcționat bine de mulți ani, până când am actualizat Windows 10 Pro la actualizarea sugerată Windows Feature Experience Pack.

introduceți descrierea imaginii aici

Sistemul curent:

Ediția Windows 10 Pro
Versiunea 21H2
Instalat pe â8/â24/â2020
Versiunea sistemului de operare 19044.1415
Experimentați Windows Feature Experience Pack 120.2212.3920.0

Probabil că acest lucru a schimbat unele permisiuni ale utilizatorului și modul în care funcționa IIS; și până la punctul în care mi-am pierdut site-ul. A trebuit să reinstalez totul.

Eroare (C0000005)

Au trecut patru săptămâni de când am actualizat de la MariaDB 10.1 la MariaDB 10.6 și, cu asta, am trecut de la utilizarea MySQL ODBC 5.1 Driver la MariaDB Connector/ODBC 3.1 (Versiunea 3.01.15.00), care face parte din "seria actuală de lansare stabilă."

Aceste erori nu foarte utile lipsesc informații despre numărul de rând unde se află eroarea. Ei citesc:

Fișier /home.asp Eroare neașteptată. A apărut o eroare de captare (C0000005) într-un obiect extern. Scriptul nu poate continua să ruleze.

Și arată așa:

eroare (C0000005)


Ce am facut:

Mi-am verificat codul pentru conexiuni lăsate deschise la baza de date, așa cum este sugerat în această postare Eroare clasică ASP C0000005 dar inca primesc aceste erori. Aceste erori aleatorii (C0000005) ASP continuă să reducă grupul de aplicații și se comportă foarte mult așa cum este descris în acest fir unde unele scurgeri de memorie ar putea fi de vină.

Acum mă gândesc să folosesc un alt driver.

Răspunsurile din acest thread Ce sunt erorile ASP 0115 și C0000005 sugerează utilizarea conectorului ODBC versiunea 5.1.6 (mysql-connector-odbc-5.1.6-winx64.msi), care este din 2009. Aceasta MySQL Connector/ODBC 8.0.27 (mysql-connector-odbc-8.0.27-winx64.msi) pare mai actualizat. Și ar trebui să încerc.

Primul lucru pe care l-am observat este mult mai rapid. Acum sper doar că aceste erori C0000005 se vor termina.


Actualizare A: Erorile revin în continuare, dar mult mai devreme așa cum era de așteptat.

Am incercat pe 32 de biți driver-ul, de asemenea, mysql-connector-odbc-8.0.27-win32.msi pentru a vedea dacă ar funcționa, dar nici nu a putut încărca pagina. Cred că ar trebui să folosesc un pool de aplicații pe 32 de biți pentru ca acesta să funcționeze. (Nu am încercat asta.)


Actualizare B: Acum folosesc din nou Conector MySQL pe 64 de biți/ODBC 8.0.27 conducător auto.

Ar putea fi modul în care configurez driverul care reduce pool-ul meu de aplicații?

Acesta este șirul meu de conexiune:

Conn_STRING = "dsn=___;" & _
   "TCPIP=1;" & _
   „SERVER=127.0.0.1;” & _
   „UID=___;” & _
   „PWD=___;” & _
   „BAZA DE DATE=___;” & _
   „PORT=3306;” & _
   „CONN_TIMEOUT=30;” & _
   „CHARSET=utf8mb4;” & _
   „READ_TIMEOUT=20;” & _
   „WRITE_TIMEOUT=10;” & _
   „Opțiune=3”

Am setat parametrii de conectare astfel:

conexiune

metadate

cursor/rezultate

depanare

ssl

misc

Am observat că cumva pool-ul de aplicații continuă să ruleze în ciuda acestor erori înregistrate:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <Sistem>
  <Provider Name="Active Server Pages" /> 
  <EventID Qualifiers="49152">5</EventID> 
  <Version>0</Version> 
  <Nivel>2</Nivel> 
  <Task>0</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2021-12-23T21:41:37.9772561Z" /> 
  <EventRecordID>2212200</EventRecordID> 
  <Corelatie /> 
  <Execution ProcessID="0" ThreadID="0" /> 
  <Channel>Aplicație</Channel> 
  <Computer>vm-alb</Computer> 
  <Securitate /> 
  </Sistem>
- <EventData>
  <Date>Fișier /blog.asp Eroare neașteptată. A apărut o eroare de captare (C0000005) într-un obiect extern. Scriptul nu poate continua să ruleze.</Data> 
  </EventData>
  </Eveniment>

De asemenea, văd un nou avertisment în jurnalul de sistem.

Un proces care deservește grupul de aplicații „myPool” a suferit un accident fatal
eroare de comunicare cu Serviciul de activare a proceselor Windows. The
ID-ul procesului a fost „1124”. Câmpul de date conține numărul de eroare.


ACTUALIZAȚI

Am obosit multe drivere ODBC diferite. Drivere ODBC MariaDB și MySQL ODBC. Niciunul nu împiedică blocarea aplicațiilor. Înainte de a se prăbuși, o mulțime de erori C0000005 sunt înregistrate. Driverul MySQL ODBC 8.0 s-a dovedit a fi mult mai rapid și mai îngăduitor, dar ceva încă reduce pool-ul de aplicații. Acum folosesc driverul MySQL ODBC 8.0 Unicode.

MariaDB ODBC are o eroare?

În plus, acum am schimbat modul în care stabilesc obiectele. În loc să le setați așa

SET rs = Server.CreateObject("ADODB.Recordset")
SET wshell = Server.CreateObject("WScript.Shell")
SET mesaj = Server.CreateObject("CDO.Message")

Acum doar fac

SET rs = CreateObject("ADODB.Recordset")
SET wshell = CreateObject("WScript.Shell")
SET mesaj = CreateObject("CDO.Message")

Se pare că arată mai promițător. Unele erori au acum uneori numere de linie.

Am contactat Microsoft pentru a mă ajuta să interpretez Raportul meu de analiză DebugDiag dintre aceste accidente. De asemenea, am observat un model nou care a început să apară în jurnalele de erori. Mai întâi a Pagini Active Server urmat de Eroare de aplicație:

model de eroare

Eroare în paginile serverului activ:

Eroare: Fișier /blog.asp Eroare neașteptată.A apărut o eroare de captare (C0000005) într-un obiect extern. Scriptul nu poate continua să ruleze..

Eroare de aplicație:

Nume aplicație greșită: w3wp.exe, versiune: 10.0.19041.1, ștampilă de timp: 0x58c67bf3
Numele modulului cu erori: ntdll.dll, versiunea: 10.0.19041.1288, marcaj de timp: 0xa280d1d6
Cod de excepție: 0xc0000409
Compensarea erorii: 0x00000000000a2070
Id-ul procesului cu erori: 0x3144
Ora de pornire a aplicației greșite: 0x01d7fd9d0686ef42
Calea aplicației greșite: c:\windows\system32\inetsrv\w3wp.exe
Calea modulului defect: C:\WINDOWS\SYSTEM32\ntdll.dll
ID raport: cda5aa10-492d-4e5c-ae17-ac4f9dbf70ab
Nume complet pachet cu defecte: ID aplicație defectuoasă legată de pachet:


După cum s-a sugerat Aici la mysql.com mi-am schimbat acum setarea conectorului DSN pentru utilizare cu ASP. Am bifat caseta Returnează rândurile potrivite în loc de rândurile efectuate.

am avut Opțiune=3 în șirul meu de conexiune și găsit pe baza acest blog că probabil ar trebui să o declar ca FLAG_FIELD_LENGTH (1) + FLAG_FOUND_ROWS (2).

Orice sugestii sunt binevenite.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.