MVC配置global无效

做项目的时候遇到一个问题,就是在global里进行配置了路由,配置代码如下:

但是在我用http://xxxx/zt.asp这个路径进行访问的时候,调试并没有跳转到该控制器下的方法内,而是直接出现404错误。

个人觉得其原因是因为配置带有后缀名的路由,默认访问的是其静态文件,故在该文件下访问zt.asp并没有找到这样一个文件,所以出现404问题。

解决办法如下:

第一种:即在web.config文件里配置如下

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

 


第二种:

 <system.webServer>
      <modules runAllManagedModulesForAllRequests="false" />
      <handlers>
        <add name="HtmlFileHandler" path="*.asp" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
      </handlers>
    </system.webServer>

 

两种方法对比,根据查阅资料,第二种性能更好点,两者的差别在于第一种相当于访问该站点的所有请求都会进入modules处理,包括一些静态文件的请求,当一些很大pv站点这样做的话就会造成一定的压力从而影响性能。

测试两者的请求文件方法为

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/data.txt"), true))
            {
                _testData.WriteLine(Request.Url.ToString());
            }
        }

 

转载于:https://www.cnblogs.com/97310ZT/p/8676589.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值