尝试访问本地 IIS 中的 MVC 应用程序时收到 404 错误

发布于 2024-09-02 16:10:52 字数 1213 浏览 5 评论 0原文

我在本地 IIS 上有一个使用以下格式的 Web 表单设置构建的现有网站设置:

-MainSite  
  -Application1
  -Application2 
  -Application3

每个位置都有单独的应用程序,因此 MainSite 有一个应用程序,Application1 有另一个应用程序,依此类推。这样就可以在同一站点中的不同应用程序上进行开发。我想添加一个新的应用程序,它是 MVC 而不是 Web 表单。我创建了一个新的 MVC 项目,它在 Cassini 中运行得很好,但是当我为其创建一个新的 IIS 应用程序并将其指向 MVC 项目时,我无法在浏览器中导航到它并收到 404 错误。我希望能够导航到 http://MainSite/NewMVCApplication/。我希望 NewMVCApplication 的根指向我的联系人控制器。

新 MVC 应用程序中的 global.asax 当前如下所示:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Root",                                              // Route name
            "",                           // URL with parameters
            new { controller = "Contacts",  action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
        RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
    }
}

I have an existing web site setup on my local IIS built with web forms setup in this format:

-MainSite  
  -Application1
  -Application2 
  -Application3

There are separate applications in each location, so MainSite has an application, and Application1 has another application and so on. This way development on different applications in the same site can be broken out. I want to add a new Application that is MVC instead of web forms. I created a new MVC project which runs in Cassini just fine, but when I create a new IIS application for it and point it to the MVC project I am unable to navigate to it in the browser and get a 404 error. I am expecting to be able to navigate to http://MainSite/NewMVCApplication/. I want the root of NewMVCApplication to point to my Contacts Controller.

My global.asax in the new MVC application currently looks like this:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Root",                                              // Route name
            "",                           // URL with parameters
            new { controller = "Contacts",  action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
        RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请恋爱 2024-09-09 16:10:52

确保 NewMVCApplication 正在集成模式管道应用程序池中运行。

Make sure NewMVCApplication is running in an integratedMode pipeline application pool.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文