Kategorie: ASP Allgemein
Frage: Wie kann ich eine DLL neu kompilieren. Ich bekomme immer den Fehler "Zugriff verweigert"
Sie entwickeln eigene ASP-Komponenten mittels Visual Basic, Visual C++, Delphi, ... Dann kennen
Sie sicherlich das Problem, dass Ihre Komponente nach dem ersten Zugriff durch den Webserver
gesperrt ist und Sie Ihr Projekt nicht neu kompilieren können. Sie erhalten stattdessen die
Fehlermeldung: "Zugriff verweigert". Die Ursache hierfür ist, dass IIS die Komponente in seinen
Speicherbereich lädt und dort ausführt, die DLL aber nach dem ersten Aufruf nicht wieder freigibt.

Um den IIS zu beenden und somit auch Ihre DLL wieder freizugeben, müssen Sie folgende Kommandos
am DOS-Prompt eingeben. Sinnvollerweise erstellen Sie hierfür eine Batchdatei mit folgenden Inhalt:

[stopsvc.bat]
net stop iisadmin /y
net start w3svc
net start msftpsvc
net start smtpsvc

Eventuell müssen Sie weitere Dienste starten, die aufgrund Ihrer Abhängigkeit vom IIS-Admin
Dienst gestoppt wurden.

Sie können aber Ihre DLL auch mit Hilfe von ASP debuggen. Dies hat 2 Vorteile. Erstens können
Sie unter realen Bedingungen testen und zweitens wird die DLL nicht jedesmal gesperrt. Um die
DLL mit ASP zu debuggen, müssen Sie folgendermassen vorgehen:

Öffnen Sie Ihr Projekt in der VB-IDE. Erstellen Sie die DLL und drücken Sie F8 (zeilenweise Ausführung).
Sobald Ihre DLL instantiiert und aktiviert wurde, meldet sich der VisualBasic-Debugger und ermöglicht
Ihnen, Ihren Code zeilenweise auszuführen. Sie können auch F5 (komplette Ausführung) drücken.
Das Projekt muss sich aber im Debugmodus befinden, ansonsten wird die DLL wieder
gesperrt, da IIS und nicht Ihre Entwicklungsumgebung die DLL im Speicher hält.

Copyright 2000 - 2021 by Stefan Falz Webconsulting