2010-11-22 8 views
1

Ich entwickle ein kleines IIS7 natives Modul.IIS7 native Modulprobleme

Ich kann scheinen, keine Ausgabe davon zu erhalten, wenn ich Seitenanfragen in IIS mache.

Also habe ich einen Schritt zurück zu versuchen, eines der msdn Samples zuerst arbeiten zu lassen. Das Problem ist - ich kann keine Ausgabe von dem bekommen entweder ...

Die Probe ist hier:

http://msdn.microsoft.com/en-us/library/ms693622(VS.90).aspx

ich folgendes gemacht:

. Stellen Sie sicher, dass ich RegisterModule

exportiert habe. Erbaut das Modul als Win32 dll

. Es wurde eine Testseite mit einer web.config- und einer test.aspx-Seite hinzugefügt, die nur "Hallo Welt" anzeigt.

. Das native Modul wurde in IIS auf Serverebene mit dem IIS gui

hinzugefügt. Eine Handlerzuordnung auf Site-Ebene für "* .aspx", alle Verben, für mein Modul hinzugefügt.

. Erneut gestartet IIS

Ich kann meine web.config wurde aktualisiert zu sehen ist:

<system.webServer> 
    <handlers> 
     <add name="EndRequestModule" path="*.aspx" verb="*" modules="MyHttpModule" scriptProcessor="<REALPATHISINHERE>\endRequestModule.dll" resourceType="Unspecified" preCondition="bitness32" /> 
    </handlers> 
</system.webServer> 

An dieser Stelle ich erwarte Linien in der Ereignisanzeige, um zu sehen, wenn ich Anfragen machen - aber nichts.

Ich habe auch einige "OutputDebugString" -Aufrufe hinzugefügt, um zu sehen, wann die Module Anfragen laden oder beantworten, aber ich sehe dort auch keine Ausgabe, was mich glauben lässt, dass etwas configgesque fehlt ...

Ich habe Windows 7 Ultimate x64 und VS2010 - gibt es irgendwelche Extras, die ich installieren oder andere Dinge zu konfigurieren (möglicherweise zwischen x86 und x64), weil es kein Server os ist?

Alle Gedanken zu was ich fehlen könnte wäre willkommen.

Danke.

+0

fwiw procexp zeigt, dass mein w3wp Prozess x64 ist, meine DLL ist derzeit x86, Hinzufügen einer Projektkonfiguration für x64 und Wiederaufbau der dll Targeting x64 Ergebnisse in einer 503, Dienst nicht verfügbar und der Anwendungspool stoppt, zeigt die Ereignisanzeige einen Zugriff Verletzungsfehler .... Ich bin mir sicher, dass dies etwas mit x86 vs x64 ist, kann ich die Testseite zwingen, als x86 anstelle von x64 zu laufen, um nur den POC zu testen? –

Antwort

2

Fest.

Es sind keine Handlerzuordnungen erforderlich, es sei denn, Sie müssen spezifisch filtern, es reicht aus, Ihre Module auf Serverebene zu installieren und dann auf Standortebene für Websites zu entfernen, die Ihr Modul nicht benötigen.

Erweiterte Einstellungen des Anwendungspools in IIS - Setzen Sie 32 Bit-Anwendungen auf TRUE, um den POC zu testen.

Dann erstellen Sie die DLL für eine x64-Plattform neu, deinstallieren Sie Ihr vorhandenes Modul, installieren Sie das x64, setzen Sie 32-Bit-Anwendungen auf FALSE aktivieren und testen Sie das x64-Modul.

OutputDebugString-Aufrufe werden jetzt auch in DbgView angezeigt.

+0

Ich versuche dasselbe auf Win7 64 und VS2010 zu machen. Ich habe mein Modul für x64 gebaut, aber der App-Pool stoppt und ich bekomme einen Fehler 503. Ich habe genau das getan, was du oben gesagt hast. Ich bin immer noch Fehlersuche. Irgendwelche Ratschläge, die du mir geben kannst? –

+0

Eigentlich habe ich gerade herausgefunden, was mein Problem war und es war die Tatsache, dass IIS 7 kein Modul aus dem Visual Studio-Projekt laden konnte, das unter meinem Profil war. Ich musste die DLL außerhalb meines Profilverzeichnisses kopieren und dann war IIS 7 glücklich, es zu laden. HAHA! –