【问题标题】:Visual studio 2010 - Use Local IIS web serverVisual Studio 2010 - 使用本地 IIS Web 服务器
【发布时间】:2013-01-03 22:56:31
【问题描述】:

我正在尝试在 iis 7 上设置我的网站,到目前为止我已经完成了以下操作:

  • 已安装 iis7 和所有主要组件。
  • 我在 iis 中创建了一个新网站。
  • 通过 Visual Studio,我创建了一个新的虚拟目录。

我已启用目录浏览,因为我的问题是我不确定路由如何与 iis 一起使用。在 Visual Studio 开发服务器中,它会转到默认页面,而无需指定具体路径。

我唯一的理论是更改我的 global.asax 文件,但我仍然不确定该怎么做,

全球 asax

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace UserManager
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

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

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

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

            ///* User Manager routing */
            //routes.MapRoute(
            //    "UserManager", // Route name
            //    "{controller}/{action}/{id}", // URL with parameters
            //    new { Controller = "UserManager", action = "Index", id = UrlParameter.Optional }
            //    );

            routes.MapRoute(
                "UserManagerCreateUser", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { Controller = "UserManager", action = "CreateUser", id = UrlParameter.Optional }
                );

            routes.MapRoute(
               "UserManagerLookUpGroupName", // Route name
               "{controller}/{action}/{id}", // URL with parameters
               new { Controller = "UserManager", action = "LookUpGroupName", id = UrlParameter.Optional }
               );

            routes.MapRoute(
               "UserManagershowError", // Route name
               "UserManager/showError/sErrorMessage", // URL with parameters
               new { Controller = "UserManager", action = "showError", UrlParameter.Optional}
               );

            /* User Status routing */
            routes.MapRoute(
                "UserStatus", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { Controller = "UserStatus", action = "Index", id = UrlParameter.Optional }
                );

            /* Email Distribution list routing */
            routes.MapRoute(
                "EmailDistributionList", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { Controller = "EmailDistributionList", action = "Index", id = UrlParameter.Optional }
                );

            /* Email User Details routing */
            routes.MapRoute(
                "EmailUserDetails", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { Controller = "EmailUserDetails", action = "Index", id = UrlParameter.Optional }
                );
        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

总结

尝试在 IIS7 上设置 MVC 3 Intranet 站点。不知道路由请求是否错误,因为它找不到页面。屏幕截图显示了 Visual Studio 开发服务器中的工作原理。

【问题讨论】:

    标签: asp.net-mvc-3 iis-7


    【解决方案1】:

    您不想启用目录浏览。

    尝试在 IIS 中添加新站点,而不是虚拟目录。当您创建它时,将端口分配给喜欢 9000 然后您可以使用 http://localhost:9000/ 访问您的站点

    接下来,单击应用程序池。右键单击新站点并转到基本设置。确保 .NET 框架的版本是 V4 而不是 v2,并且托管管道模式是集成而不是经典。

    此外,在您转换到 IIS 之前,请确保该站点与 Visual Studio 开发服务器一起正常运行。

    【讨论】:

    • @BreetAllred 我做了你的建议。而不是 localhost 它是我的网络 IP。我通过应用程序池将站点更改为 .net 4.0。它最初与我的站点同名,即测试。它在开发服务器模式下的 Visual Studio 中也可以正常工作。现在错误是: HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。站点物理路径也是我的项目所在的文档。
    • 现在可能是权限问题。尝试通过 Windows 资源管理器向文件夹授予 IIS_IUSRS 权限。在Windows资源管理器中右键单击文件夹->属性->安全选项卡->添加,然后输入IIS_IUSRS,然后添加它们。根据您的操作,它可能只需要读取权限。
    【解决方案2】:

    你的路由应该没有问题, 检查您的站点是否实际使用框架 4.0 检查托管管道是否设置为集成 如果您的部署服务器与您的开发服务器不同,请确保在您的部署服务器中安装了 mvc 3.0

    【讨论】:

    • 如何确保服务器上安装了 mvc 3.0? IIS 也在我的工作机器上。
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2011-03-22
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    相关资源
    最近更新 更多