Friday 15 July 2011

iis - Custom maintenance mode module does not work on Azure Web Role -



iis - Custom maintenance mode module does not work on Azure Web Role -

i've created , registered custom http module show maintenance message user after administrator turns on maintenance mode via configuration change.

when pass request html should homecoming custom html loaded file, returns message: "the service unavailable." can't find string in entire solution. custom log message custom maintenance module written log4net logs.

... info ddiplusweb.common.maintenanceresponder - maintenance mode on. request rejected. requesturl=...

seems miss configured in iis on azure. intercepts 503 response. how prepare it?

module code

void context_beginrequest(object sender, eventargs e) { httpapplication application = (httpapplication)sender; httpcontext context = application.context; if (appconfig.azure.ismaintenance) { maintenanceresponder responder = new maintenanceresponder(context, maintenacehtmlfilename); responder.respond(); } }

interesting part of responder code.

private void setmaintenanceresponse(string message = null) { _context.response.clear(); _context.response.statuscode = 503; _context.response.statusdescription = "maintenance"; if (string.isnullorempty(message)) { _context.response.write("503, site under maintenance. please seek 1 time again bit later."); } else { _context.response.write(message); } _context.response.flush(); _context.response.end(); }

edit: lied. sorry. maintenance module returns same message requests expect json or html.

this reply led me solution.

i've added line setmaintenanceresponse method.

_context.response.tryskipiiscustomerrors = true;

it works now. here more means.

iis azure azure-web-roles httpmodule

No comments:

Post a Comment