asp.net mvc项目只能运行在iis根目录下吗?

接触了asp.net mvc一段时间后,一直有这种疑虑,怎么mvc项目只能设为iis根目录或者在debug状态下才能跑起来。上csdn提问,得到高人的解释是 iis6以下不支持空扩展名的路径,需要把某个iis支持的扩展名添加到routing中去,

诸如   routes.MapRoute(
         "myRoute",                                              // Route name
         "{controller}.mvc/{action}/{id}",                           // URL with parameters
         new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
     );

 

当然 这里mvc是自己随便定义的扩展名,只要你的iis支持这个扩展名就行(如没有就添加)。

 

我尝试了一下,确实可行,不过这个routing把路径  http://localhost/app/index变成了 http://localhost/app.mvc/index, 看着有点别扭,我仔细想想,为什么不把routing变成

"myRoute",                                              // Route name
         "{controller}/{action}.aspx/{id}",                           // URL with parameters
         new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
     );

这样,aspx的扩展名我的iis本身就支持,不需要添加对mvc的扩展名的支持,而且,这个路径看上去也比较像一个url(http://localhost/app/index.asp).

 

问题虽然得到一个暂时的解决,但是感觉自己对mvc的routing的理解还是太肤浅,为什么设置为根目录的时候routing能解析空扩展名?routing到底是如何解析url的?看来自己还需要下功夫去琢磨啊。

也希望能得到读者您的指点。

当使用IIS 7.5发布ASP.NET MVC应用程序时,可能会遇到403.14错误。这个错误通常是由于IIS无法访问到请求的目录或文件导致的。 要解决这个问题,你可以采取以下步骤: 1. 确认你的应用程序已正确地部署到IIS。确保应用程序的根目录IIS站点的物理路径配置一致。 2. 检查IIS站点的访问权限。确保IIS用户(如IIS_IUSRS)具有足够的权限来访问应用程序的目录和文件。可以在资源管理器中找到应用程序的目录,右键点击它,选择"属性",然后在"安全"选项卡中进行设置。 3. 确认你的应用程序的Web.config文件中有正确的路由配置。确保路由的设置正确无误,以便IIS能够正确地解析URL并找到对应的控制器和操作。 4. 检查IIS的配置文件中是否启用了MVC路由模块。在IIS管理器中找到你的站点,双击它,然后在"模块"部分确认是否有"UrlRoutingModule"模块,并且它已启用。 5. 检查应用程序的Global.asax文件。确保其中的RegisterRoutes方法被正确地调用并包含正确的路由设置。 如果以上步骤都没有解决问题,你还可以尝试在IIS管理器中重新注册ASP.NET MVC。在命令提示符中运行以下命令: %WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 这将重新注册ASP.NET MVC,并可能解决403.14错误。 总之,通过检查应用程序的部署、访问权限、路由配置以及IISASP.NET MVC的正确安装,应该能够解决IIS 7.5中发布ASP.NET MVC应用程序时可能出现的403.14错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值