{"id":6089,"date":"2014-02-06T00:00:00","date_gmt":"2014-02-06T00:00:00","guid":{"rendered":""},"modified":"2025-09-12T08:49:47","modified_gmt":"2025-09-12T15:49:47","slug":"auto-healing-windows-azure-web-sites","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/","title":{"rendered":"Auto-Healing Windows Azure Web Sites"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and automatically recover?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With recent updates to Windows Azure Web Sites (WAWS), we have tried to address these questions. There are some new enhancements to \u201cAlways ON\u201d feature and with these enhancements comes the ability to automatically recycling the worker process hosting your web application. We call this the \u201cAuto Healing\u201d feature, and here is how it works:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You simply define the <strong>triggers <\/strong>in the root web.config file of your web site and configure the <strong>actions<\/strong> to be performed when these triggers are hit. At high level, your configuration section will have following structure,<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.webp-550x526-1.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-8341 webp-format\" style=\"width:636px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE:<\/strong> Just like \u201cAlways ON\u201d, this feature is ONLY available with the Standard instances.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us break down available options per scenarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Detailed explanation of all supported elements and attributes are at the end of the post.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scenario-1-recycling-based-on-request-count\">Scenario 1 \u2013 \u201cRecycling based on Request count\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a scenario where you have a need to recycle your application automatically after it has served X number of requests in Y amount of time. You know that it just doesn\u2019t scale well after huge influx of requests in short amount of time. You want to detect this condition and recycle worker process automatically and log an event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You simply edit the root web.config file for your application with following sample configuration. (If you have an existing web.config file then please copy section under an existing section)<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7848.Apurva-Joshi-Auto-Heal-image2.webp-550x526-1.webp\" alt=\"graphical user interface, text, application\" class=\"wp-image-8343 webp-format\" style=\"width:648px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7848.Apurva-Joshi-Auto-Heal-image2.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Above configuration will recycle the worker process that has served <strong>1000<\/strong> <strong>requests<\/strong> in <strong>10 minutes. <\/strong>It will also log an event in eventlog.xml file (found in Logfiles folder of your web root directory). Having an event logged helps you track down the occurrence of an auto healed web site and provide important forensic for troubleshooting or root cause analysis. When the first request comes in, we start the timeInterval clock.&nbsp; We then start counting occurrences.&nbsp; If the count exceeds the maximum before the timeInterval expires, we take an<br>action.&nbsp;If the time interval expires, we reset <em>both<\/em> the timer and the count. The effect of this is that, given above configuration, something like this could happen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">00:00:00 \u2013 First request arrives<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">00:09:59 \u2013 998 requests are served<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">00:10:00 \u2013 Timer expires and is reset to 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">00:10:01 \u2013 999 requests are served<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this scenario, we did not have 1000 requests occur in either the first or second timeInterval window, so no action is taken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE: <\/strong>If you have multiple instances of your web site, it will only restart the worker process for the instance that has hit this trigger and not all instances.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example of an event logged in eventlog.xml file.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/3527.Apurva-Joshi-Auto-Heal-image3.webp-550x526-1.webp\" alt=\"block of code\" class=\"wp-image-8345 webp-format\" style=\"width:584px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/3527.Apurva-Joshi-Auto-Heal-image3.png-550x526-1.webp\"><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scenario-2-recycling-based-on-slow-requests\">Scenario 2 \u2013 \u201cRecycling based on slow requests\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a scenario where the performance of your application starts degrading and several pages start taking longer time to render. You would like to detect this situation and recycle worker process automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You simply edit the root web.config file for your application with following sample configuration. (If you have an existing web.config file then please copy section under an existing section)<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7824.Apurva-Joshi-Auto-Heal-image4.webp-550x526-1.webp\" alt=\"graphical user interface, text, application\" class=\"wp-image-8347 webp-format\" style=\"width:613px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7824.Apurva-Joshi-Auto-Heal-image4.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Above configuration will recycle the worker process when it detects that <strong>20 requests<\/strong> have taken <strong>more than 45 seconds<\/strong> to execute in <strong>last 2 minutes. <\/strong>It is important to note that trigger for slowRequests is evaluated at the end of each request execution, which makes it equally important to set timeInterval higher value to timeTaken value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE: <\/strong>If you have multiple instances of your web site, it will only restart the worker process for the instance that has hit this trigger and not all instances.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example of an event logged in eventlog.xml file.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/3438.Apurva-Joshi-Auto-Heal-image5.webp-550x526-1.webp\" alt=\"block of code\" class=\"wp-image-8349 webp-format\" style=\"width:633px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/3438.Apurva-Joshi-Auto-Heal-image5.png-550x526-1.webp\"><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"scenario-3-logging-an-event-or-recycling-based-on-http-status-code-s\">Scenario 3 \u2013 \u201cLogging an event (or recycling) based on HTTP status code(s)\u201d<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a scenario where you would like to get notified of a situation when your web site starts throwing specific HTTP status codes, sub-status code or win32 status codes. You could choose to recycle or simply log an event in eventlog.xml file (found inside Logfiles folder of your web sites content root)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You simply edit the root web.config file for your application with following sample configuration,<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/8741.Apurva-Joshi-Auto-Heal-image6.webp-550x526-1.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-8351 webp-format\" style=\"width:648px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/8741.Apurva-Joshi-Auto-Heal-image6.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Above configuration will log an event in eventlog.xml file when it detects that <strong>10 requests <\/strong>resulted in <strong>HTTP status code of 500 <\/strong>with <strong>sub status code of 100<\/strong> <strong>last 30 seconds. <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE: <\/strong>If you have multiple instances of your web site, it will only log an event for the instance that has hit this trigger and not all instances. Optionally, you can choose to recycle instead of just logging an event. Recycling logs an event by default.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example of an event logged in eventlog.xml file.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/4034.Apurva-Joshi-Auto-Heal-image7.webp-550x526-1.webp\" alt=\"text, letter\" class=\"wp-image-8353 webp-format\" style=\"width:645px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/4034.Apurva-Joshi-Auto-Heal-image7.png-550x526-1.webp\"><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"scenario-4-taking-custom-actions-or-recycling-logging-based-on-memorylimit\">Scenario 4 \u2013 \u201cTaking custom actions (or recycling\/logging) based on memory<br>limit\u201d<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a scenario where you are troubleshooting a memory leak in your web site and would like to perform a custom actions like generating memory dumps, or sending an email notification or generate memory dumps and recycle the process etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You simply edit the root web.config file for your application with following sample configuration,<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/4834.Apurva-Joshi-Auto-Heal-image8.webp-550x526-1.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-8355 webp-format\" style=\"width:676px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/4834.Apurva-Joshi-Auto-Heal-image8.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Above configuration will execute a custom action to run <strong>procdump.exe<\/strong> and generate <strong>mini memory dumps <\/strong>when it detects that worker process has reached <strong>800MB of<br>private bytes.&nbsp; <\/strong>Auto healing will not trigger on certain HTTP error codes that are coming from http.sys (kernel driver), where request is not made it into the worker process pipeline. Some examples of such status codes are: 304, 302, 400 (many 400s but not all), 503 etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NOTE: <\/strong>If you have multiple instances of your web site, it will only generate memory dumps for the instance that has hit this trigger and not all instances. Optionally, you can<br>choose to run custom action that will send an email etc. Also note that, procdump.exe is not available by default in root of your web site (d:home) \u2013 it is something you will have xcopy deploy with your web site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example of an event logged in eventlog.xml file for action type of recycle.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7026.Apurva-Joshi-Auto-Heal-image9.webp-550x526-1.webp\" alt=\"text, letter\" class=\"wp-image-8357 webp-format\" style=\"width:673px;height:auto\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7026.Apurva-Joshi-Auto-Heal-image9.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Following is the list of supported configurations and their meaning.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6471.forgot-1.webp-550x526-1.webp\" alt=\"Elements description\" class=\"wp-image-8359 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6471.forgot-1.png-550x526-1.webp\"><\/figure>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/5040.forgot-2.webp-550x526-1.webp\" alt=\"text\" class=\"wp-image-8361 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/5040.forgot-2.png-550x526-1.webp\"><\/figure>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6675.forgot-3.webp-550x526-1.webp\" alt=\"table\" class=\"wp-image-8363 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6675.forgot-3.png-550x526-1.webp\"><\/figure>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7380.forgot-4.webp-550x526-1.webp\" alt=\"table\" class=\"wp-image-8365 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/7380.forgot-4.png-550x526-1.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1467,1461],"tags":[],"audience":[],"content-type":[1511],"product":[1542],"tech-community":[],"topic":[],"coauthors":[97],"class_list":["post-6089","post","type-post","status-publish","format-standard","hentry","category-compute","category-web","content-type-best-practices","product-static-web-apps","review-flag-1680286581-295","review-flag-1-1680286581-825","review-flag-2-1680286581-601","review-flag-3-1680286581-173","review-flag-4-1680286581-250","review-flag-alway-1680286580-106","review-flag-new-1680286579-546"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2014-02-06T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T15:49:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png\" \/>\n<meta name=\"author\" content=\"Microsoft Azure\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Azure\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/\",\"@type\":\"Person\",\"@name\":\"Microsoft Azure\"}],\"headline\":\"Auto-Healing Windows Azure Web Sites\",\"datePublished\":\"2014-02-06T00:00:00+00:00\",\"dateModified\":\"2025-09-12T15:49:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\"},\"wordCount\":1015,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png\",\"articleSection\":[\"Compute\",\"Web\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\",\"name\":\"Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png\",\"datePublished\":\"2014-02-06T00:00:00+00:00\",\"dateModified\":\"2025-09-12T15:49:47+00:00\",\"description\":\"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.webp\",\"width\":550,\"height\":122,\"caption\":\"graphical user interface, text, application, email\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Auto-Healing Windows Azure Web Sites\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog","description":"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/","og_locale":"en_US","og_type":"article","og_title":"Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog","og_description":"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2014-02-06T00:00:00+00:00","article_modified_time":"2025-09-12T15:49:47+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png","type":"","width":"","height":""}],"author":"Microsoft Azure","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Microsoft Azure","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/","@type":"Person","@name":"Microsoft Azure"}],"headline":"Auto-Healing Windows Azure Web Sites","datePublished":"2014-02-06T00:00:00+00:00","dateModified":"2025-09-12T15:49:47+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/"},"wordCount":1015,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png","articleSection":["Compute","Web"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/","name":"Auto-Healing Windows Azure Web Sites | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.png","datePublished":"2014-02-06T00:00:00+00:00","dateModified":"2025-09-12T15:49:47+00:00","description":"How many times have you been woken up in the middle of a night for an issue that was simply resolved by restarting your web site? Wouldn\u2019t it be nice to auto detect certain conditions and\u2026","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/02\/6064.Apurva-Joshi-Auto-Heal-image1.png-550x526-1.webp","width":550,"height":122,"caption":"graphical user interface, text, application, email"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/auto-healing-windows-azure-web-sites\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Web","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/web\/"},{"@type":"ListItem","position":3,"name":"Auto-Healing Windows Azure Web Sites"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/6089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=6089"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/6089\/revisions"}],"predecessor-version":[{"id":46127,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/6089\/revisions\/46127"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=6089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=6089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=6089"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=6089"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=6089"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=6089"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=6089"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=6089"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=6089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}