【问题标题】:ASP.NET Web Application Does not Autoredirect to Default.aspxASP.NET Web 应用程序不会自动重定向到 Default.aspx
【发布时间】:2013-11-15 21:59:27
【问题描述】:

我设置了一个空的 ASP.NET Web 应用程序来为我们的团队提供 NuGet 存储库。我将它创建为一个空的 Web 应用程序,除了将 NuGet.Server 包添加到解决方案并将测试包添加到 Packages 目录之外,我没有做任何其他事情。

我已将应用程序发布到 IIS,确认我的目标是正确的框架 (4.0),并查看了我能找到的关于该主题的所有帖子。我一直没能找到解决办法。基本上,当我转到http://locoalhost/NuGet_Test 时,我希望被重定向到http://localhost/NuGet_Test/Default.aspx,但这并没有发生。我可以直接去http://localhost/NuGet_Test/Default.aspx,一切正常。但我不知道为什么它不会默认。我很担心,因为如果将来其他 Web 应用程序发生这种情况,我不知道该怎么办。

另外,我已验证 default.aspx 位于 IIS (7.0) 的默认文档列表中。

【问题讨论】:

  • defaultdocument 可能是票证。请在此处查看iis.net/configreference/system.webserver/defaultdocument
  • 在你的 global.asax 中试试这个... public void Application_Start(object sender, EventArgs e) { RouteTable.Routes routeCollection; routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/YourDesiredSubFolder/YourDesiredDocument.aspx"); }
  • 两个都试一试。没运气。接受其他建议。
  • @foxtrotZulu,仅供参考,当我试一试您的解决方案时,我收到消息说“RouteTable.Routes 是一个像类型一样使用的属性。”刚拿出来尝试添加变量:RouteTable.Routes.MapPageRoute
  • 对不起,试试这个... var routeCollection = RouteTable.Routes; routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/NuGet_Test/Default.aspx");

标签: asp.net nuget-server


【解决方案1】:

更好,试试这个..

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("", "/NuGet_Test","~/Default.aspx");
}

更新:这是 tmoore 使用的实际解决方案,没有额外的方法和 URL 形式的细微变化...感谢 tmoore

protected void Application_Start(object sender, EventArgs e)
{
    var routeCollection = RouteTable.Routes;  routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/Default.aspx"); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多