[ASP/MSSQL] Inconsequente SQL-Execute

Pagina: 1
Acties:

  • Coltrui
  • Registratie: Maart 2001
  • Niet online
Situatie:

NT4 server met daarop IIS service en MSSQL 7.0. Er draait een simpele site op waarachter wat default database-activiteiten zitten.
Enabled protocol in Client Network Utility voor MSSQL is TCP/IP.
Server Network Uility enabled protocols zijn TCP/IP, Named pipes (Default) en Multiprotocol (whatever that is)
DB-Connectie wordt op elke ASP-pagina aangemaakt (en gesloten):
code:
1
2
SET Con = Server.CreateObject("ADODB.Connection")
Con.Open "Driver={SQL SERVER};server=bla;UID=bla;PWD=bla;Database=bla;"


Probleem:

Alles doet wat het moet doen - toch krijg ik soms de volgende error:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC SQL Server Driver][Shared Memory]General network error. Check your network documentation.
Deze error kan op elke pagina verschijnen waar een query geëxecute wordt. De connectie gaat dus steeds goed, de foutmelding komt op de regel waar de execute van een (weer willekeurige) query aangeroepen wordt.

Geprobeerd:

- Twintig seconden wachten en F5-en en de pagina laadt zoals het hoort
- Herstarten van de MSSQLservice veegt het probleem meteen van de baan, doch slechts voor een tijdje.
- pooling in de connectionstring afgezet
- Connection commandtimeout > 0 gezet
- Meteen vanop tweede PC gebrowsd wanneer het probleem zich voordeed -> zelfde probleem op zelfde pagina

Is er iemand die kan voorkomen dat ik mijn haar uittrek?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Geen idee of het helpt maar je zou kunnen proberen de OLE DB drivers te gaan gebruiken. Deze zijn een stuk beter en sneller.

code:
1
Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;"

zie ook http://www.connectionstrings.com/

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Microsoft zelf komt ook met een slim advies:
"We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security."...
Verder raden ze aan om, wanneer IIS en MSSQL op dezelfde server draaien, 'server = (local)' te gebruiken i.p.v. 'server = <servernaam>'. In het eerste geval vindt de database access plaats via een locale named pipe, en in het 2e geval via de TCP/IP stack (met de nodige overhead).

  • Coltrui
  • Registratie: Maart 2001
  • Niet online
Ik heb de sqloledb gebruikt en de servername LOCAL gezet.
Het probleem blijft...

Ik heb wel gemerkt dat de connections naar de DB open blijven, hoewel ik die netjes voor de redirect afsluit. Gevolg: dezelfde foutmelding in de browser, maar in de windows log staat dat het aantal connecties exceeded is. SET CON = Nothing brengt ook geen aarde aan de dijk. De connectie blijtf gewoon open staan.

Iemand een idee hoe het komt dat CON.CLOSE niet werk net voor een redirect?

[ Voor 11% gewijzigd door Coltrui op 07-07-2005 18:15 ]