在 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
。
谁能帮忙??
【问题讨论】:
您能否添加评论,说明您的默认文档开始起作用的原因? 我对这个问题投了赞成票,因为我遇到了同样的问题,但我的你有错别字吗?
你有:
<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 标记更改为<defaultDocument enabled="true">
【参考方案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
【讨论】:
添加<clear/>
让我能够成功指定默认文档。【参考方案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做部署