在Microsoft Windows Azure上设置网站的默认网页

时间:2012-08-25 23:35:56

标签: asp.net vb.net azure hosting

我最近在azurewebsites.net上建立了一个网站。

但是当我去网址http:/website.azurewebsites.net/ 它没有加载。

但是当我去http:/website.azurewebsites.net/home.aspx时,它会加载。

我想要的是那个 如果用户访问http:/website.azurewebsites.net/,则使用home.aspx内容加载或重定向到http:/website.azurewebsites.net/home.aspx

这不起作用

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

很抱歉,实际链接http://rathgarfantasyhockey.azurewebsites.net/default.aspx工作正常,但当您转到http://rathgarfantasyhockey.azurewebsites.net HTTP错误404时,会显示The resource cannot be found

任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:7)

根据这篇博文: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>

应该工作。或者您可以键入到Url映射它。为此,请查看http://msdn.microsoft.com/en-us/library/cc668201.aspx

答案 1 :(得分:7)

如果您使用的是MVC或Web API,请在RegisterRoutes()中添加以下行:

   routes.IgnoreRoute(""); 

这解决了我的问题。希望它能帮到你。

答案 2 :(得分:4)

如果您的应用程序是MVC应用程序,它会查找默认控制器而不是默认页面。

因此,您必须在RouteConfig中映射路线。在我的情况下,我想用index.html页面加载网站,所以我做了:

RouteConfig.cs文件:

 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 }
        );
    }

在我的HomeController,Index Action中,写下这段代码:

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

这在Azure中使用共享站点可以正常工作。我希望这会对你有所帮助。

答案 3 :(得分:3)

你有拼写错误吗?

你有:

<add value="Default.aspx" />

但你说你的“主页”有效/home.aspx

如果您希望在用户转到/home.aspx时显示http:/website.azurewebsites.net/,那么我可以想到几种方法来实现这一目标。

由于Default.aspxdefaultDocument,因此您可以将home.aspx重命名为Default.aspx,当有人访问http:/website.azurewebsites.net/时将显示Default.aspx

如果由于某种原因需要将home.aspx命名为home.aspx,那么根据您的要求,如果您希望http:/website.azurewebsites.net/重定向到/home.aspx,那么请创建一个名为根目录中的Default.aspx并将其编辑为包含Response.Redirect("home.aspx", false);。有关此类页面的完整示例,请访问http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.80).aspx

更新

尝试将enabled="true"添加到您的defaultDocument XML标记中。请参阅以下http://www.iis.net/ConfigReference/system.webServer/defaultDocument

中的示例
 <system.webServer>
      <defaultDocument enabled="true">
         <files>
            <add value="home.html" />
         </files>
      </defaultDocument>
  </system.webServer>