2012-08-25 39 views
6

Gần đây tôi đã thiết lập một trang web trên azurewebsites.net.Đặt trang web mặc định cho trang web trên Microsoft Windows Azure

Nhưng khi tôi đi đến địa chỉ http: /website.azurewebsites.net/ URL không tải.

Nhưng khi tôi truy cập http: /website.azurewebsites.net/home.aspx nó tải.

Những gì tôi muốn là nếu người dùng đi đến http: /website.azurewebsites.net/ nó tải với nội dung home.aspx hoặc được chuyển đến http: /website.azurewebsites.net/home.aspx

này không hoạt động

<system.webServer> 
    <defaultDocument> 
    <files> 
     <clear /> 
     <add value="Default.aspx" /> 
    </files> 
    </defaultDocument> 
    </system.webServer> 

Xin lỗi ở đây là liên kết thực tế http://rathgarfantasyhockey.azurewebsites.net/default.aspx mà hoạt động tốt, nhưng khi bạn đi đến http://rathgarfantasyhockey.azurewebsites.net lỗi HTTP 404, The resource cannot be found được hiển thị.

Có ai giúp được không ??

+0

Bạn có thể thêm nhận xét về nội dung khiến tài liệu mặc định của bạn bắt đầu hoạt động không? – HeatfanJohn

+1

Tôi đã bỏ phiếu cho câu hỏi vì tôi có cùng sự cố nhưng không có số trong phần của tôi. Thêm rằng giải quyết vấn đề cho tôi, nhưng user1625190 đã có điều đó vì vậy tôi không biết độ phân giải của anh ta là gì. Ngẫu nhiên thêm 'enabled = true' vào thẻ như được đề xuất bên dưới không có hiệu lực trong trường hợp của tôi. – Opsimath

Trả lời

7

Theo bài viết trên blog này: http://blogs.msdn.com/b/cesardelatorre/archive/2010/07/22/how-to-set-a-default-page-to-a-windows-azure-web-role-app-silverlight-asp-net-etc.aspx

<defaultDocument> 
      <files>       
      <clear/>       
      <add value="Default.aspx"/>      
      </files> 
</defaultDocument> 

nên làm việc. Hoặc bạn có thể gõ để Url ánh xạ nó. Để làm điều đó, hãy xem http://msdn.microsoft.com/en-us/library/cc668201.aspx

+0

Thêm' 'cho phép tôi chỉ định thành công tài liệu mặc định. –

3

Bạn có lỗi đánh máy không?

Bạn có:

<add value="Default.aspx" /> 

Nhưng bạn nói rằng "trang nhà" của bạn mà làm việc là /home.aspx.

Nếu bạn muốn /home.aspx được hiển thị khi người dùng truy cập http:/website.azurewebsites.net/, thì tôi có thể nghĩ ra một số cách để bạn thực hiện điều đó.

Vì bạn có Default.aspx như defaultDocument của bạn, bạn có thể đổi tên home.aspx-Default.aspx và khi ai đó đi vào http: /website.azurewebsites.net/ nội dung của Default.aspx sẽ được hiển thị.

Nếu bạn cần phải giữ home.aspx đặt tên như home.aspx đối với một số lý do, sau đó như bạn yêu cầu nếu bạn muốn cho http:/website.azurewebsites.net/ để chuyển hướng đến /home.aspx sau đó tạo ra một tập tin gọi Default.aspx trong thư mục gốc và chỉnh sửa nó để chứa Response.Redirect("home.aspx", false);. Một ví dụ hoàn chỉnh cho loại trang này có sẵn tại http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.80).aspx.

Cập nhật:

Hãy thử thêm enabled="true" vào thẻ defaultDocument XML của bạn. Xem ví dụ dưới đây từ http://www.iis.net/ConfigReference/system.webServer/defaultDocument

<system.webServer> 
     <defaultDocument enabled="true"> 
     <files> 
      <add value="home.html" /> 
     </files> 
     </defaultDocument> 
    </system.webServer> 
+0

Xin lỗi, không phải không, trang này là /Default.aspx – user1625190

+0

Tôi đã cập nhật câu trả lời của mình dựa trên nhận xét của bạn. – HeatfanJohn

+0

hi, cảm ơn vì đã quay lại với tôi nhưng tôi đã làm điều đó nhưng nó vẫn không hoạt động. nếu bạn truy cập http://rathgarfantasyhockey.azurewebsites.net/ nó vẫn hiển thị lỗi. Nếu bạn truy cập http://rathgarfantasyhockey.azurewebsites.net/Default.aspx nó hiển thị/chuyển hướng đến trang chủ như bạn đã nói – user1625190

4

Nếu ứng dụng của bạn là ứng dụng MVC, nó sẽ tìm trình điều khiển mặc định thay vì các trang mặc định.

Vì vậy, bạn phải ánh xạ tuyến đường trong RouteConfig. Trong trường hợp của tôi, tôi muốn tải trang web bằng trang index.html, vì vậy tôi đã làm:

RouteConfig.cs file:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 

Và trong HomeController tôi, Index Action, viết mã này:

public ActionResult Index() 
    { 
     return Redirect("/index.html"); 
    } 

này hoạt động tốt trong Azure với một trang web chia sẻ. Tôi hy vọng điều này sẽ giúp bạn.

+0

Bạn cũng có thể thêm chú thích tuyến đường để kiểm soát tốt hơn '' ' [Route (" ")] // Kết hợp để xác định mẫu tuyến đường" Home " [Route (" Index ")] // Kết hợp để xác định mẫu tuyến đường "Trang chủ/Chỉ mục" [Route ("/")] // Không kết hợp, xác định mẫu tuyến "" '' ' –

7

Nếu bạn đang sử dụng MVC hoặc Web API, thêm dòng sau trong RegisterRoutes():

routes.IgnoreRoute(""); 

này giải quyết vấn đề của tôi. Hy vọng nó sẽ giúp bạn.

+0

Đây là những gì đã sửa cho tôi. Tôi đã thử các giải pháp khác, nhưng nó không hoạt động cho đến khi tôi thêm vào. –

Các vấn đề liên quan