簡體   English   中英

ASP.NET Web窗體-部署到Azure-“您正在尋找的資源已被刪除或暫時不可用。”

[英]ASP.NET Web Forms - Deploying to Azure - “The resource you are looking for has been removed or is temporarily unavailable.”

我將ASP.NET項目部署到Azure中的Web應用程序服務時遇到錯誤。 在本地開發環境/ Web服務器(IIS)中運行代碼時,無法復制它。

為了提供一些背景信息,我正在苦苦掙扎的特定頁面是我添加到項目中的最新頁面。 所有其他頁面都可以正常工作。 我正在做一些查詢字符串傳遞,但是即使沒有在URL中傳遞查詢字符串,我也會看到相同的錯誤。

錯誤:

您要查找的資源已被刪除,名稱已更改或暫時不可用。

這是無法使用的頁面代碼(.aspx):

<%@ Page Title="Car Photos" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CarImages.aspx.cs" Inherits="CarImages" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
     <customControls:Header runat="server" heading="Car Photos"></customControls:Header>
    <div class="row">

        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings: MYCONNSTRING %>" 
            SelectCommand="SELECT CarImages.CarImage, CarImages.CarName, Cars.CarID, Cars.Model FROM CarImages INNER JOIN Cars ON CarImages.CarID = Cars.CarID WHERE (Cars.CarID = CarImages.CarID)">
                <SelectParameters>
                    <asp:QueryStringParameter Name="CarID" QueryStringField="CarID" Type="Int32" />
                </SelectParameters>
        </asp:SqlDataSource>

        <asp:Label ID="ErrorLabel" runat="server" Text=""></asp:Label>
        <br />
        <br />

        <asp:Image ID="Image1" runat="server" Height="284px" Width="432px"/>
        <br /><br /><br /><br />


    </div>
</asp:Content>

...以及(.aspx.cs)背后的代碼:

public class MyClass
{
    public string ImagePath { get; set; }
    public int Id { get; set; }
    public string Name { get; set; }

}

public partial class CarImages : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string queryStringId = (Request.QueryString["CarID"]).ToString();
        int queryStringIdNum = Int32.Parse(queryStringId);

        SqlConnection con = new SqlConnection("Data Source=SECRETSERVER.database.windows.net;Initial Catalog=SECRETDB;User ID=SECRET;Password=SECRET");
        SqlCommand sql = new SqlCommand(@"SELECT CarID, CarImage, CarName FROM CarImages WHERE CarID = @queryStringIdNum", con);
        sql.Parameters.AddWithValue("@queryStringIdNum", queryStringIdNum);

        con.Open();

        //using(var command = sql)
        //{
        using (var reader = sql.ExecuteReader())
        {
            var list = new List<MyClass>();
            while (reader.Read())
                list.Add(new MyClass
                {
                    ImagePath = reader.GetString(1),
                    Id = reader.GetInt32(0),
                    Name = reader.GetString(2)
                });

            bool isEmpty = !list.Any();

            if (isEmpty)
            {
                ErrorLabel.ForeColor = Color.Red;
                ErrorLabel.Text = "No images currently uploaded. Please check back later";
                Image1.Visible = false;
            }
            else
            {
                ErrorLabel.ForeColor = Color.Green;
                ErrorLabel.Text = "Image found!";
                foreach (var img in list)
                {
                    Image1.ImageUrl = img.ImagePath;
                }
            }
        }
    }
}

我感謝任何有見識的人。 我正在努力確定可能是什么原因造成的,因為它在本地Web服務器中運行良好(即從VS 2017構建和測試)。 謝謝大家!

您要查找的資源已被刪除,名稱已更改或暫時不可用。

這是404找不到錯誤。 這意味着服務器未找到您請求的頁面。 有兩個原因可以導致此問題。

  1. 該頁面未從您的開發服務器成功發布。 若要進行檢查,可以使用FTP檢查CarImages.aspx文件是否已發布到Azure Web App。 您可以在“概述”面板上獲取FTP地址和使用名稱,並在Azure門戶的“部署憑據”面板上設置FTP密碼。 如果Azure Web App服務器上不存在此文件,請重新部署您的Web應用程序,此問題將得到解決。

在此處輸入圖片說明

  1. 請確保您使用正確的路徑訪問頁面。 例如,如果CarImages.aspx文件在car文件夾下。

在此處輸入圖片說明

訪問此頁面的路徑應如下所示,我們需要將文件夾名稱放在頁面名稱之前。

http://yourwebsitename.azurewebsites.net/car/CarImages.aspx?CarID=1

暫無
暫無

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

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