C# 如何将ASP.NET MVC网站作为子目录托管

C# 如何将ASP.NET MVC网站作为子目录托管,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个ASP.NET MVC网站,我想把它放在现有web域的子目录中。通过这种方式,URL将类似于www.existingsite.com/newsite/login,而不是www.newsite.com/login 我试着将它添加到RouteConfig.cs文件中,如下所示,但根本不起作用 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resourc

我有一个ASP.NET MVC网站,我想把它放在现有web域的子目录中。通过这种方式,URL将类似于
www.existingsite.com/newsite/login
,而不是
www.newsite.com/login

我试着将它添加到
RouteConfig.cs
文件中,如下所示,但根本不起作用

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

        routes.MapRoute(
            name: "Default",
            url: "NewSite/{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
}
之后,我进入项目的属性,将虚拟目录设置为
localhost:port/NewSite
。在我尝试用用户信息解密cookie之前,这似乎是可行的

解密抛出一个错误

加密操作期间发生错误

它在这条特定的线路上爆炸:

FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);

是否可以在子目录中托管ASP.NET MVC网站,还是必须位于根目录下?

您试图解密的cookie是否由现有网站创建?如果是这种情况,两个站点都需要使用相同的机器密钥,即它们的web.config cookie由新闻站点代码创建。现有网站本质上只是一个IIS网站。