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

Posted

技术标签:

【中文标题】在 Microsoft Windows Azure 上设置网站的默认网页【英文标题】:Set default webpage for website on Microsoft Windows Azure 【发布时间】:2012-08-21 00:40:50 【问题描述】:

我最近在 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

谁能帮忙??

【问题讨论】:

您能否添加评论,说明您的默认文档开始起作用的原因? 我对这个问题投了赞成票,因为我遇到了同样的问题,但我的 部分中没有 。添加它为我解决了这个问题,但是 user1625190 已经有了,所以我不知道他的分辨率是什么。顺便说一下,按照下面的建议将 'enabled=true' 添加到 标记对我来说没有效果。 【参考方案1】:

你有错别字吗?

你有:

<add value="Default.aspx" />

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

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

由于您将Default.aspx 作为您的defaultDocument,您可以将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>

【讨论】:

对不起,不是,页面是/Default.aspx 嗨,感谢您回复我,但我做到了,但它仍然不起作用。如果您转到rathgarfantasyhockey.azurewebsites.net,它仍然会显示错误。如果你去rathgarfantasyhockey.azurewebsites.net/Default.aspx,它会像你说的那样显示/重定向到主页 更新的答案包括将defaultDocument XML 标记更改为&lt;defaultDocument enabled="true"&gt;【参考方案2】:

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

【讨论】:

添加&lt;clear/&gt; 让我能够成功指定默认文档。【参考方案3】:

如果您的应用是 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 中运行良好。我希望这会对你有所帮助。

【讨论】:

你也可以添加路由注解更好的控制 ``` [Route("")] // 结合定义路由模板 "Home" [Route("Index")] // 结合到定义路由模板 "Home/Index" [Route("/")] // 不合并,定义路由模板 "" ```【参考方案4】:

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

   routes.IgnoreRoute(""); 

这解决了我的问题。希望它可以帮助你。

【讨论】:

这是为我解决的问题。我尝试了其他解决方案,但直到我添加了它才起作用。

以上是关于在 Microsoft Windows Azure 上设置网站的默认网页的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 8 上使用 Microsoft 帐户的 Azure ACS 2.0

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

Windows Azure 远程站点“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册 [重复]

在世纪互联版的Microsoft Azure上做windows虚拟机的批量部署--用powershell做部署

windows server 2012 R2汉化 -- 玩转Microsoft Azure

为什么总连不上--之在Windows系统下使用CLI连接Microsoft Azure 21V版本