2016-10-03 85 views
0

這是我第一次將Azure部署到Web應用程序的體驗。 我跟着這個tutorialAzure部署不安裝在requirements.txt中列出的Python軟件包

他們的默認演示應用程序對我來說工作正常。

之後,我通過git推送了我的Flask應用程序。日誌顯示部署成功。然而,當我瀏覽通過鏈接的託管應用程序的「應用程序屬性」提供的,我得到一個500錯誤如下:

該頁無法顯示,因爲內部服務器錯誤有 發生。

最有可能的原因:IIS收到請求;但是,在處理請求期間發生內部 錯誤。 此錯誤的根本原因取決於哪個模塊處理請求,以及發生此錯誤時工作進程中發生的 是什麼。 IIS不是 能夠訪問網站或應用程序的web.config文件。 如果NTFS權限設置不正確,可能會發生這種情況。 IIS是 無法處理網站或應用程序的配置。 經過身份驗證的用戶沒有使用此DLL的權限。 請求被映射到受管理的處理程序,但未安裝.NET可擴展性 功能。

唯一的關閉基地,我可以通過瀏覽通過KUDU wwwroot文件看到的事情是,沒有我已經安裝在我的本地虛擬環境在Azure上安裝儘管「requirements.txt」文件是否存在的軟件包在wwwroot。

我的理解是Azure會在GIT成功推送時安裝它在requirements.txt中找到的任何不存在的包。但它似乎並沒有發生在我身上。

我做錯了什麼,缺少的軟件包只是一個症狀,或者它可能是問題的原因?

注:

  • 我的瓶應用本地工作(Linux)的罰款和對第三方VPS

  • 我調到幾次從頭開始無濟於事(我使用本地GIT法)

  • 我在本地克隆了Azure Flask演示應用程序,更改了應用程序文件夾並將其推回到Azure,但沒有成功。

  • Azure是設置到Python 2.7一樣的我的虛擬ENV本地

  • 正如上面鏈接教程的建議,我刪除了「ENV」文件夾,並重新部署到Azure的把戲重新安裝虛擬ENV。它做了,但它有自己的默認包,而不是我的requirements.txt中的包。

我requirements.txt有以下幾點:

bcrypt == 3.1.0 CFFI == 1.7.0點擊== 6.6瓶== 0.11。1 Flask-Bcrypt == 0.7.1 Flask-Login == 0.3.2 Flask-SQLAlchemy == 2.1 Flask-WTF == 0.12 itsdangerous == 0.24 Jinja2 == 2.8 MarkupSafe == 0.23 pycparser == 2.14 PyMySQL = = 0.7.7蟒-HTTP-客戶== 1.2.3 6 == 1.10.0 smtpapi == 0.3.1 SQLAlchemy的== 1.0.14 WERKZEUG == 0.11.10 WTForms == 2.1

+0

您的應用程序的根目錄中是否有'.skipPythonDeployment'文件?並且在部署任務期間是否收到任何錯誤消息?如果可能,你可以提供你的'requirements.txt'嗎? –

+0

@ GaryLiu-MSFT>是的,根目錄中有一個.skippythondeployment文件。它只有一個「hello」字符串。部署任務中沒有錯誤消息。它以「已成功部署」消息結束。最後,我使用requirements.txt內容更新了問題。 – user3522242

回答

1
作爲

Azure Web Apps將運行deploy.cmd腳本作爲部署任務,以控制部署期間將運行哪些命令或任務。

您可以使用Azure-CLI的命令azure site deploymentscript --python來獲取python應用程序的部署任務腳本。

,你可以找到在這個deploy.cmd sciprt以下腳本:

IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython 
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython 

echo Detected requirements.txt. You can skip Python specific steps with a .skipPythonDeployment file. 

所以.skipPythonDeployment會跳過部署任務以下所有步驟,包括創建虛擬環境。

您可以嘗試從應用程序中刪除.skipPythonDeployment,然後重試。

此外,請參閱https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script瞭解更多信息。

+0

我刪除了.skipPythonDeployment,它開始管道包。它在加密時失敗了,他的錯誤「無法找到vcvarsall.bat」,但這是另一個問題,因爲你解決了我最初的問題。非常感謝加里! – user3522242