如何在IIS8上部署ASP.NET MVC 4网站

时间:2014-06-11 08:59:14

标签: c# asp.net-mvc asp.net-mvc-4 iis

我有一个ASP.NET MVC 4应用程序,我想在IIS 8上部署它。我在互联网上读到,通过创建一个包并发布它可以直接通过VS 2010/2013这样做但我想用IIS管理器部署它。我尝试通过以下步骤手动完成:

  1. 右键单击“站点”(IIS管理器中的左侧面板)>添加网站。
  2. 指定项目的物理路径(我把它放在C :)上,给出一个端口号(这里是3500)并给出一个url名称(例如,www.abc.net(或.com) )。
  3. 点击确定,我的网站显示在左侧面板中。
  4. 当我通过Chrome启动我的网站时,浏览器会说他无法访问http://www.abc.net:3500

    我在这里做错了什么?如何部署我的MVC网站不使用Visual Studio

    编辑:通过跟随Imran的第一个链接,似乎我向前迈进了一步。但是,不是访问我的应用程序的索引页面,而是浏览器显示的内容:

    My project folder's list

    我应该在RouteConfig中配置一些东西吗?这是:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace AstellasSchedulerV2 {
        public class RouteConfig {
            public static void RegisterRoutes(RouteCollection routes) {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default", // Route name
                    url: "{controller}/{action}/{id}", // URL with parameters
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
            }
        }
    }
    

3 个答案:

答案 0 :(得分:1)

您可以使用Visual Studio创建部署包,方法是转到构建>发布{project name} 并按照向导进行操作。

IIS点击某个网站,部署菜单下应该有导入应用的选项。如果您没有看到这一点,则需要将WebDeploy模块安装到IIS

或者,如果您仍在开发解决方案,则可以通过转到项目的属性>来配置Visual Studio以使用IIS安装。网络并选择使用本地IIS Web服务器。当您运行应用程序时,它会自动将构建版本复制到您的默认网站并从那里运行它。

希望这有帮助。

答案 1 :(得分:0)

不知道你做错了什么。检查日志。设置web.config,在本地和/或远程访问站点以进行调试时显示错误。你的问题就像"我有车。这是行不通的。有什么问题?"。

在web.config中启用远程调试后,您应该会看到正确的错误消息。

http://technet.microsoft.com/en-us/library/bb684665.aspx

表示设置为:

              

从" RemoteOnly"更改customErrors模式属性到"关",然后保存文件。

然后你应该看到的不仅仅是"错误500"。理解那就是你的工作;)

答案 2 :(得分:0)

请逐步参考以下文章

IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5

ASP.NET Web Deployment using Visual Studio: Deploying to Test

修改

正确发布您的网站代码,然后尝试以下

1)请在global.asax中查看下面的配置。

RouteConfig.RegisterRoutes(RouteTable.Routes);

2)您的路线配置应为

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "your default controller", action = "index", id = UrlParameter.Optional }
            );

3)在IIS 8.0中禁用目录浏览