J'ai une DLL d'extension ISAPI écrite en C++ à l'aide de Microsoft Visual Studio 2003 exécuté dans IIS 5.1 sous XP Pro. Chaque fois qu'un _ASSERTE se déclenche, je reçois une boîte de message vide avec 'Error' dans la barre de titre et les boutons Abort/Retry/Ignore. Ce que je ne vois pas, c'est le texte d'expression de la macro _ASSERTE. J'ai tracée dans le code source de la bibliothèque d'exécution et je me retrouve dans crtmbox.c sur une ligne qui semble appeler un MessageBoxA() dynamiquement chargé. lpText (Échec de débogage ...) et lpCaption (bibliothèque de débogage Microsoft Visual C++) sont valides. Si je débogue le processus IIS, le bouton Réessayer entre dans le débogueur. Si j'exécute le même code à partir d'un exécutable Windows construit à partir de la même source, j'obtiens la boîte de message Assert à laquelle je m'attendrais.Boîte de dialogue _ASSERTE vide de l'extension ISAPI
Je suis sûr que j'ai déjà vu ça fonctionner par le passé. En fait, le passage à Visual Studio 2003 a été initialement utile car la bibliothèque d'exécution 2003 ajoute correctement MB_SERVICE_NOTIFICATION aux indicateurs MessageBox afin qu'au moins la boîte de message résultante soit visible sur la console lors du débogage du service.
Vous avez des idées?
JF