J'essaie de créer une solution qui simulera App_Offline.htm pour l'accès à distance tout en permettant aux utilisateurs locaux de tester le site web. J'ai trouvé quelques options que j'essaie mais la meilleure ne semble pas fonctionner pour notre site ASP.NET (2.0) qui repose sur l'activation de l'état de session sur toutes les pages.Problème avec HttpHandler et l'état de la session
Le HttpHandler est ajouté dans web.config
<add verb="*" path="*.aspx" type="AppOffline.AppOfflineHandler, AppOffline" />
et quand la classe est appelée, elle se résume à ceci:
public void ProcessRequest(HttpContext context)
{
this.context = context;
// offline mode and remote request?
if (!context.Request.IsLocal &&
IsOffline
)
{
context.Response.Clear();
context.Response.Write(AppOffline);
context.Response.End();
}
else
// redirect to the default processing pipe
PageParser.GetCompiledPageInstance(
context.Request.Path,
context.Request.PhysicalPath,
context).ProcessRequest(context);
}
Le problème est en PageParser.GetCompiledPageInstance. Toute page que je frappe maintenant à notre site je reçois le message d'erreur suivant:
« L'état de session ne peut être utilisée que lorsque enableSessionState est définie sur true, soit dans un fichier de configuration ou dans la directive Page. S'il vous plaît également que vous System.Web.SessionStateModule ou un module d'état de session personnalisée est inclus dans la configuration <> \ < system.web> \ < httpModules> section dans la configuration de l'application « .
Nous avons toutes nos variables de session stockées dans SQL, pas sûr si cela compte ou non.
J'ai vu d'autres personnes qui ont eu des erreurs similaires et la réponse qu'on leur a donnée était que vous deviez ajouter le ProcessRequest (contexte) pour le contourner.
pensées, commentaires, suggestions?
merci.
oui - cela devrait le réparer. –
* sent la tête * public class AppOfflineHandler: IHttpHandler, IRequiresSessionState fonctionne comme un charme maintenant, merci! –
gentil, travaillé comme un charme :-) –