Повторное развертывание веб-приложения Azure с нуля с использованием шаблона ARM приводит к тому, что веб-сайт 404 не найден - PullRequest
0 голосов
/ 11 мая 2018

Я использую шаблон ARM для развертывания моей группы ресурсов Azure как часть моего определения выпуска. В случае моей среды разработки я удаляю всю группу ресурсов перед повторным ее развертыванием с помощью шаблона ARM.

В процессе развертывания я тестирую API, развернутый в промежуточном слоте, выбирая номер версии, включенный в определение сваггера. Это означает, что на этом этапе мое веб-приложение доступно. Чтобы завершить развертывание, я меняю свой рабочий слот на свой промежуточный.

После этого, когда я пытаюсь получить доступ к своему веб-приложению на https://mywebapp.azurewebsite.net,, Chrome остается на синей странице с 404 Web Site not found. На этой странице предлагается 2 решения:

  • Убедитесь, что пользовательский домен работает правильно, но у меня его нет в этом веб-приложении.
  • Очистить кэш DNS из командной строки. Я сделал это, но без изменений после обновления страницы.

Есть идеи, что происходит не так?

Это явно связано с тем, что я отбрасываю всю группу ресурсов для ее воссоздания. Я не вижу такого поведения в моей среде QA / Prod, где я не удаляю группу ресурсов по умолчанию.

Кроме того, я заметил несколько предупреждающих сообщений во время моей разработки Dev:

2018-05-11T14:12:07.6188142Z ##[debug][PUT]https://$mywebapp__maintenance:***@mywebapp-maintenance.scm.azurewebsites.net/api/deployments/5921526047927616
2018-05-11T14:12:12.8970287Z ##[debug]updateDeployment. Data: {"statusCode":403,"statusMessage":"Forbidden","headers":{"content-type":"text/html","server":"Microsoft-IIS/10.0","date":"Fri, 11 May 2018 14:12:12 GMT","connection":"close","content-length":"2399"},"body":"<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Web App - Unavailable</title>\r\n    <style type=\"text/css\">\r\n        html {\r\n            height: 100%;\r\n            width: 100%;\r\n        }\r\n\r\n        #feature {\r\n            width: 960px;\r\n            margin: 95px auto 0 auto;\r\n            overflow: auto;\r\n        }\r\n\r\n        #content {\r\n            font-family: \"Segoe UI\";\r\n            font-weight: normal;\r\n            font-size: 22px;\r\n            color: #ffffff;\r\n            float: left;\r\n            width: 460px;\r\n            margin-top: 68px;\r\n            margin-left: 0px;\r\n            vertical-align: middle;\r\n        }\r\n\r\n            #content h1 {\r\n                font-family: \"Segoe UI Light\";\r\n                color: #ffffff;\r\n                font-weight: normal;\r\n                font-size: 60px;\r\n                line-height: 48pt;\r\n                width: 800px;\r\n            }\r\n\r\n        p a, p a:visited, p a:active, p a:hover {\r\n            color: #ffffff;\r\n        }\r\n\r\n        #content a.button {\r\n            background: #0DBCF2;\r\n            border: 1px solid #FFFFFF;\r\n            color: #FFFFFF;\r\n            display: inline-block;\r\n            font-family: Segoe UI;\r\n            font-size: 24px;\r\n            line-height: 46px;\r\n            margin-top: 10px;\r\n            padding: 0 15px 3px;\r\n            text-decoration: none;\r\n        }\r\n\r\n            #content a.button img {\r\n                float: right;\r\n                padding: 10px 0 0 15px;\r\n            }\r\n\r\n            #content a.button:hover {\r\n                background: #1C75BC;\r\n            }\r\n    </style>\r\n</head>\r\n<body bgcolor=\"#00abec\">\r\n    <div id=\"feature\">\r\n            <div id=\"content\">\r\n                <h1 id=\"unavailable\">Error 403 - This web app is stopped.</h1>\r\n                <p id=\"tryAgain\">The web app you have attempted to reach is currently stopped and does not accept any requests. Please try to reload the page or visit it again soon.</p>\r\n                <p id=\"toAdmin\">If you are the web app administrator, please find the common 403 error scenarios and resolution <a href=\"http://blogs.msdn.com/b/waws/archive/2016/01/05/azure-web-apps-error-403-this-web-app-is-stopped.aspx\" target=\"_blank\">here</a>. For further troubleshooting tools and recommendations, please visit <a href=\"https://portal.azure.com/\">Azure Portal</a>.</p>\r\n        </div>\r\n    </div>\r\n</body>\r\n</html>\r\n"}
2018-05-11T14:12:12.9060930Z ##[warning]Error: Failed to update Deployment status. Error: Forbidden (CODE: 403)
2018-05-11T14:12:12.9071339Z ##[debug]Processed: ##vso[task.issue type=warning;]Error: Failed to update Deployment status. Error: Forbidden (CODE: 403)
...
2018-05-11T14:21:03.6299150Z ##[debug][PUT]https://$mywebapp:***@mywebapp.scm.azurewebsites.net/api/deployments/5921526048459655
2018-05-11T14:21:03.8067460Z ##[debug]updateDeployment. Data: {"statusCode":404,"statusMessage":"Site Not Found","headers":{"content-type":"text/html","server":"Microsoft-IIS/10.0","date":"Fri, 11 May 2018 14:21:03 GMT","connection":"close","content-length":"2778"},"body":"<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Microsoft Azure Web App - Error 404</title>\r\n    <style type=\"text/css\">\r\n        html {\r\n            height: 100%;\r\n            width: 100%;\r\n        }\r\n\r\n        #feature {\r\n            width: 960px;\r\n            margin: 75px auto 0 auto;\r\n            overflow: auto;\r\n        }\r\n\r\n        #content {\r\n            font-family: \"Segoe UI\";\r\n            font-weight: normal;\r\n            font-size: 22px;\r\n            color: #ffffff;\r\n            float: left;\r\n            margin-top: 68px;\r\n            margin-left: 0px;\r\n            vertical-align: middle;\r\n        }\r\n\r\n            #content h1 {\r\n                font-family: \"Segoe UI Light\";\r\n                color: #ffffff;\r\n                font-weight: normal;\r\n                font-size: 60px;\r\n                line-height: 48pt;\r\n                width: 800px;\r\n            }\r\n\r\n        a, a:visited, a:active, a:hover {\r\n            color: #ffffff;\r\n        }\r\n\r\n        #content a.button {\r\n            background: #0DBCF2;\r\n            border: 1px solid #FFFFFF;\r\n            color: #FFFFFF;\r\n            display: inline-block;\r\n            font-family: Segoe UI;\r\n            font-size: 24px;\r\n            line-height: 46px;\r\n            margin-top: 10px;\r\n            padding: 0 15px 3px;\r\n            text-decoration: none;\r\n        }\r\n\r\n            #content a.button img {\r\n                float: right;\r\n                padding: 10px 0 0 15px;\r\n            }\r\n\r\n            #content a.button:hover {\r\n                background: #1C75BC;\r\n            }\r\n    </style>\r\n    <script type=\"text/javascript\">\r\n        function toggle_visibility(id) {\r\n            var e = document.getElementById(id);\r\n            if (e.style.display == 'block')\r\n                e.style.display = 'none';\r\n            else\r\n                e.style.display = 'block';\r\n        }\r\n    </script>\r\n</head>\r\n<body bgcolor=\"#00abec\">\r\n    <div id=\"feature\">\r\n        <div id=\"content\">\r\n            <h1>404 Web Site not found.</h1>\r\n            <p>You may be seeing this error due to one of the reasons listed below :</p>\r\n            <ul>\r\n                <li>Custom domain has not been configured inside Azure. See <a href=\"https://docs.microsoft.com/en-us/azure/app-service-web/app-service-web-tutorial-custom-domain\">how to map an existing domain</a> to resolve this.</li>\r\n                <li>Client cache is still pointing the domain to old IP address. Clear the cache by running the command <i>ipconfig/flushdns.</i></li>\r\n            </ul>\r\n            <p>Checkout <a href=\"https://blogs.msdn.microsoft.com/appserviceteam/2017/08/08/faq-app-service-domain-preview-and-custom-domains/\">App Service Domain FAQ</a> for more questions.</p>\r\n        </div>\r\n     </div>\r\n</body>\r\n</html>\r\n"}
2018-05-11T14:21:03.8165740Z ##[warning]Error: Failed to update Deployment status. Error: Site Not Found (CODE: 404)
2018-05-11T14:21:03.8166510Z ##[debug]Processed: ##vso[task.issue type=warning;]Error: Failed to update Deployment status. Error: Site Not Found (CODE: 404)
...
2018-05-11T14:22:19.4199443Z ##[debug][PUT]https://$mywebapp__maintenance:***@mywebapp-maintenance.scm.azurewebsites.net/api/deployments/5921526048539418
2018-05-11T14:22:19.6243408Z ##[debug]updateDeployment. Data: {"statusCode":404,"statusMessage":"Site Not Found","headers":{"content-type":"text/html","server":"Microsoft-IIS/10.0","date":"Fri, 11 May 2018 14:22:19 GMT","connection":"close","content-length":"2778"},"body":"<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Microsoft Azure Web App - Error 404</title>\r\n    <style type=\"text/css\">\r\n        html {\r\n            height: 100%;\r\n            width: 100%;\r\n        }\r\n\r\n        #feature {\r\n            width: 960px;\r\n            margin: 75px auto 0 auto;\r\n            overflow: auto;\r\n        }\r\n\r\n        #content {\r\n            font-family: \"Segoe UI\";\r\n            font-weight: normal;\r\n            font-size: 22px;\r\n            color: #ffffff;\r\n            float: left;\r\n            margin-top: 68px;\r\n            margin-left: 0px;\r\n            vertical-align: middle;\r\n        }\r\n\r\n            #content h1 {\r\n                font-family: \"Segoe UI Light\";\r\n                color: #ffffff;\r\n                font-weight: normal;\r\n                font-size: 60px;\r\n                line-height: 48pt;\r\n                width: 800px;\r\n            }\r\n\r\n        a, a:visited, a:active, a:hover {\r\n            color: #ffffff;\r\n        }\r\n\r\n        #content a.button {\r\n            background: #0DBCF2;\r\n            border: 1px solid #FFFFFF;\r\n            color: #FFFFFF;\r\n            display: inline-block;\r\n            font-family: Segoe UI;\r\n            font-size: 24px;\r\n            line-height: 46px;\r\n            margin-top: 10px;\r\n            padding: 0 15px 3px;\r\n            text-decoration: none;\r\n        }\r\n\r\n            #content a.button img {\r\n                float: right;\r\n                padding: 10px 0 0 15px;\r\n            }\r\n\r\n            #content a.button:hover {\r\n                background: #1C75BC;\r\n            }\r\n    </style>\r\n    <script type=\"text/javascript\">\r\n        function toggle_visibility(id) {\r\n            var e = document.getElementById(id);\r\n            if (e.style.display == 'block')\r\n                e.style.display = 'none';\r\n            else\r\n                e.style.display = 'block';\r\n        }\r\n    </script>\r\n</head>\r\n<body bgcolor=\"#00abec\">\r\n    <div id=\"feature\">\r\n        <div id=\"content\">\r\n            <h1>404 Web Site not found.</h1>\r\n            <p>You may be seeing this error due to one of the reasons listed below :</p>\r\n            <ul>\r\n                <li>Custom domain has not been configured inside Azure. See <a href=\"https://docs.microsoft.com/en-us/azure/app-service-web/app-service-web-tutorial-custom-domain\">how to map an existing domain</a> to resolve this.</li>\r\n                <li>Client cache is still pointing the domain to old IP address. Clear the cache by running the command <i>ipconfig/flushdns.</i></li>\r\n            </ul>\r\n            <p>Checkout <a href=\"https://blogs.msdn.microsoft.com/appserviceteam/2017/08/08/faq-app-service-domain-preview-and-custom-domains/\">App Service Domain FAQ</a> for more questions.</p>\r\n        </div>\r\n     </div>\r\n</body>\r\n</html>\r\n"}
2018-05-11T14:22:19.6268196Z ##[warning]Error: Failed to update Deployment status. Error: Site Not Found (CODE: 404)
2018-05-11T14:22:19.6268967Z ##[debug]Processed: ##vso[task.issue type=warning;]Error: Failed to update Deployment status. Error: Site Not Found (CODE: 404)

1 Ответ

0 голосов
/ 11 мая 2018

Такое поведение, вероятно, вызвано кэшированием DNS на вашем компьютере.Когда вы удаляете и воссоздаете приложение, оно может оказаться в другом масштабном устройстве с другим IP-адресом.Но поскольку вы, скорее всего, просто нажали на старое приложение с тем же именем хоста, у вашей машины был кеширован IP-адрес.Обходной путь:

  • Дождитесь истечения TTL
  • Очистите кэш DNS.Это может быть сложно, так как в некоторых прокси также может быть кеширование
  • Если вы пытаетесь использовать другой компьютер, который не кеширует его, это должно сработать сразу (например, попробовать с вашим телефоном)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...