2009-05-25 6 views
1

Ich habe ein Problem. Bei der Migration vom klassischen Pipeline-Modus zum integrierten Pipeline-Modus bei IIS 7.0 tritt das Problem auf:globale asax application_start application begin_request-methoden?

Serverfehler in '/' Anwendung.

Antrag ist in diesem Zusammenhang nicht verfügbar ...

Wir fanden Lösung für dieses Problem bei

mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx 

Als Lösung kurz, in global.asax muss ich Application_Start Ereignis weiterleiten Application_BeginRequest Ereignis.

void Application_Start(object sender, EventArgs e) { // sender has type 'System.Web.HttpApplicationFactory' } 

Application_BeginRequest(Object source, EventArgs e) | { 

// sender has type 'System.Web.HttpApplication' } 

Oder eine andere Lösung ist, kann Application_Start Ereignis beginnen später dann Application_BeginRequest.

irgendwelche Vorschläge? Ich habe keine Option wie "klassischen Modus" wählen

Antwort

3

Verschieben Sie den Code zu oder Session_Start. Sie sollten das Objekt Request in Application_Start sowieso nicht verwenden. Das Objekt enthält Informationen, die für eine Seitenanforderung spezifisch sind. Es macht wirklich keinen Sinn irgendetwas mit dieser Information im Application_Start Ereignis zu machen.

+0

Ich habe nichts mit Session oder Session_Start. Was ich brauche ist im Grunde Aufruf Application_BeginRequest Ereignis vor Application_start Ereignis oder Aufruf begin_request Methode von app_start mit gültigen Parametern .. – Yaya

+0

Sie können die Reihenfolge der Ereignisse nicht ändern, muss die Anwendung gestartet werden, bevor es Anfragen verarbeiten kann. Warum benötigen Sie das Request-Objekt, bevor eine Anfrage vorliegt? – Guffa

0

Also ändern Sie App-Pool-Modus auf klassisch.

+0

das ist keine Option für mich. – Yaya

Verwandte Themen