簡體   English   中英

將 MVC 應用程序部署到 Azure 應用服務時的 POSTS 問題

[英]Issue with POSTS when deploying MVC app to Azure App Service

我有一個完整的 Web 應用程序,可以在 localhost 上完美運行。 每個端點都被正確擊中,並且順利結束。 但是,當我將此 Web 應用發布到 Azure 應用服務時,沒有命中任何 POST 調用。 當我觀察網絡​​選項卡內部發生的事情時,我看到了 404。 這似乎只發生在 POST 而不是 GET。 GET 似乎工作正常。

另外,需要注意的是,我正在使用 Razor 頁面處理程序來觸發操作。 如您所見,我有一個 Razor 頁面處理程序asp-page-handler="Login" ,它應該在后面的代碼中觸發一個名為OnPostLogin

CSHTML:

 <form class="text-center p-5" method="post">
     <h5>UserName</h5>
     <div asp-validation-summary="All" class="error-message"></div>
     <input type="text" id="defaultLoginFormEmail" class="form-control mb-4" placeholder="UserName" asp-for="@Model.UserName">
     <h5>Password</h5> 
     <input type="password" id="defaultLoginFormPassword" class="form-control mb-4" placeholder="Password" asp-for="@Model.Password">
     <button class="btn btn-block my-4" type="submit" asp-page-handler="Login">Sign in</button>
 </form>

這是此 Razor 頁面的代碼隱藏方法:

public async Task<IActionResult> OnPostLogin()
 {
            var result = await _signInManager.PasswordSignInAsync(Input.UserName, Input.Password, false, false);
            // if successful login
            else if (result.Succeeded)
                Response.Redirect(Request.Path.ToString());

            // if unsuccessful
            else return RedirectToPage("/Account/LoginError");

            return Page();
}

當我單擊登錄按鈕時,它甚至似乎都沒有被擊中。 請記住,這不僅僅是此特定 POST 的問題。 這是所有 POSTS 的問題(僅在 azure 應用程序服務上,而不是在本地主機上)。

預先感謝您願意提供幫助!

我創建了一個基於 ASP.NET 核心的 Razor Pages Web 應用程序。

Razor 頁面處理程序: 在此處輸入圖片說明

控制器代碼: 在此處輸入圖片說明

發布到 Azure 后,它無需 404 即可工作。

得到: 在此處輸入圖片說明

郵政: 在此處輸入圖片說明

抱歉耽誤了大家! 我在家過節。

所以事實證明,POST 的問題在於我忘記向嘗試向數據庫發布帖子的 Azure IP 地址授予正確的權限。 它在本地運行良好,因為我使用了具有正確權限的不同數據庫。 如果您不熟悉,以下是我向指定用戶授予所有權限的方式。

GRANT ALL PRIVILEGES ON databaseName.* TO 'user'@'address';

FLUSH PRIVILEGES;

在那之后工作得很好。 感謝大家的洞察!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM