2017-06-21 42 views
0

當我將ASP.NET項目部署到Azure中的Web應用程序服務時,出現錯誤。在本地開發環境/ Web服務器(IIS)中運行我的代碼時,我無法複製它。ASP.NET Web表單 - 部署到Azure - 「您正在查找的資源已被刪除或暫時不可用。」

爲了給出一些背景,我正在努力的特定頁面是我已經添加到項目中的最新頁面;所有其他頁面都正常工作。我正在做一些查詢字符串傳遞,但即使沒有在URL中傳遞查詢字符串,我也會看到同樣的錯誤。

錯誤:

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

這裏的頁面是不工作(的.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; 
       } 
      } 
     } 
    } 
} 

我很欣賞任何有點洞察力的人。我正在努力確定可能導致這種情況的原因,因爲它在本地網絡服務器中工作正常(即從VS 2017開始構建和測試)。謝謝大家!

回答

0

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

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

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

enter image description here

  • 請確保您使用正確的路徑訪問該頁面。例如,如果CarImages.aspx文件位於car文件夾下。
  • enter image description here

    訪問此頁應該是這樣的路徑,我們需要把文件夾的名字在頁面名稱的前面。

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

    有沒有更新?你有沒有試過我的建議?如果您還有其他問題,請隨時通知我。 – Amor

    相關問題