首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我指定某些文件扩展名时,ASP.net路由被忽略

当你指定某些文件扩展名时,ASP.net路由会被忽略。这是因为ASP.net路由是一种用于处理URL请求的机制,它允许开发人员使用友好的URL来访问网站的不同页面或资源。然而,当你指定某些文件扩展名时,比如.html.css.js等,IIS(Internet Information Services)会将这些请求直接映射到对应的静态文件,而不会经过ASP.net路由处理。

这种情况下,可以通过配置IIS来解决。以下是一些可能的解决方法:

  1. 在Web.config文件中配置忽略的文件扩展名:<configuration> <system.webServer> <handlers> <add name="StaticFile" path="*.html" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> <!-- 添加其他需要忽略的文件扩展名 --> </handlers> </system.webServer> </configuration>通过添加<add>元素来配置需要忽略的文件扩展名,这样IIS就会将这些请求交给静态文件处理模块处理。
  2. 在Global.asax文件中添加忽略的文件扩展名:protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.RouteExistingFiles = true; RouteTable.Routes.Ignore("{file}.html"); // 添加其他需要忽略的文件扩展名 }通过调用Ignore方法来配置需要忽略的文件扩展名,这样ASP.net路由就会忽略这些请求。

需要注意的是,以上方法只是示例,具体的配置方式可能因项目的实际情况而有所不同。另外,这些方法只适用于ASP.net Web Forms和ASP.net MVC应用程序,对于ASP.net Core应用程序,可能需要使用不同的配置方式。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云负载均衡(CLB)。腾讯云云服务器提供可扩展的计算能力,适用于各种应用场景;腾讯云负载均衡可以将流量分发到多个云服务器上,提高应用的可用性和性能。

腾讯云云服务器产品介绍链接:https://cloud.tencent.com/product/cvm

腾讯云负载均衡产品介绍链接:https://cloud.tencent.com/product/clb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

asp.net core 系列】3 视图以及视图与控制器

0.前言 在之前的几篇中,我们大概介绍了如何创建一个asp.net core mvc项目以及http请求如何路由转交给对应的执行单元。这一篇我们将介绍一下控制器与视图直接的关系。 1....在asp.net core mvc项目中视图是指以cshtml做扩展名文件,通常在Views文件夹。...2.1 使用视图 在之前介绍的时候,有提到过当我们访问一个URL的时候,路由会自动为我们寻找到对应的可执行代码单元。但是,没有进一步内容的介绍。...那么,我们可以指定哪些视图名称: 同一个控制器文件夹下的其他视图 Shared 文件夹下的视图 这两种都是不用携带路径的视图名,可以省略文件扩展名(cshtml)。...当然,还可以指定其他路径下的视图文件,如: Views/Home/About.cshtml表示从根目录下查找到这个视图,这种写法必须指定扩展名 ..

2.5K10

ASP.NET路由系统:路由映射

我们可以通过HttpMethodConstraint为路由对象设置一个允许的HTTP方法列表,只有方法名称在这个指定的列表中的HTTP请求才允许路由。...原因很简单,如果中间发生了路由,基于页面的RouteData的各项属性都不可能为空。[实例源代码下载] ? 那么是否意味着如果请求地址对应着一个现存的物理文件ASP.NET就会自动忽略路由呢?...是否对现有文件实施路由取决于代表全局路由表的RouteCollection对象的RouteExistingFiles属性,该属性默认情况下为False,我们可以将此属性设置为True使ASP.NET路由系统忽略现有物理文件的存在...为了让ASP.NET路由系统忽略掉针对.js文件请求,我们可以按照如下的方式在Global.asax中调用RouteTable的Routes属性的Ignore方法。...的路由系统:URL与物理文件的分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

2.3K90
  • Asp.net MVC 之 Contorllers(二)

    URL路由模块会拦截无法由IIS服务处理的应用程序的任何请求。如果URL是指向一个物理文件(例如,一个ASPX文件) ,那么路由模块将忽略该请求,除非另行配置。...定义应用程序路由 应用程序的路由通常注册在global.asax文件中,他在应用程序启动处理。...默认情况下,ASP.NET 路由系统忽略可以映射到存在于服务器上的物理文件的 URL 请求。需要注意,如果请求文件在服务器真实存在,即便与路由请求相匹配,路由系统仍然会忽略该请求。...例如,将前面的代码添加到一个 ASP.NET MVC 应用程序的 Global.asax.cs 文件,然后运行,当访问default.aspx页面,会出现一个 HTTP 404 错误。...防止路由定义的URL 在ASP.NET URL路由模块没有限制我们去维护可接受的URL模式列表;我们也可以保留某些 URL 关闭的路由机制。

    1.9K60

    使用ASP.NET Core MVC框架构建Web应用

    VS Code 扩展管理页直接搜索扩展名安装即可,本次安装的版本是:0.2.33 三、VS Code开发基于解决方案的项目说明 1、VS Code项目配置 菜单:文件->打开文件夹,选择项目目录打开项目...所有插件默认的配置文件,都会放在.vscode文件夹中 image.png ASP.NET Core 入门教程 资源管理器中除了默认的面板,我们安装的Solution插件还会提供友好的Solution...Core MVC 输出HelloWorld 1、引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 public class Startup...之所以这样创建文件夹,是因为当我们返回视图,只指定ViewName,而不指定完整的路径。...创建视图文件 /Views/Home/Time.cshtml @ViewBag.ServerTime -ken.io 视图渲染@ViewBag.ServerTime会输出Action中赋值的内容,

    1.4K20

    ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    VS Code 扩展管理页直接搜索扩展名安装即可,本次安装的版本是:0.2.33 三、VS Code开发基于解决方案的项目说明 1、VS Code项目配置 菜单:文件->打开文件夹,选择项目目录打开项目...Core MVC 输出HelloWorld 1、引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 public class Startup...之所以这样创建文件夹,是因为当我们返回视图,只指定ViewName,而不指定完整的路径。...ASP.NET Core MVC框架会默认在以下项目目录中依次读取视图文件: /Views/{ControllerName} /Views/Shared /Pages/Shared 如果找到视图文件便会渲染视图...创建视图文件 /Views/Home/Time.cshtml @ViewBag.ServerTime -ken.io 视图渲染@ ViewBag.ServerTime会输出Action中赋值的内容,

    1.3K11

    ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    VS Code 扩展管理页直接搜索扩展名安装即可,本次安装的版本是:0.2.33 三、VS Code开发基于解决方案的项目说明 1、VS Code项目配置 菜单:文件->打开文件夹,选择项目目录打开项目...Core MVC 输出HelloWorld 1、引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 public class Startup...之所以这样创建文件夹,是因为当我们返回视图,只指定ViewName,而不指定完整的路径。...ASP.NET Core MVC框架会默认在以下项目目录中依次读取视图文件: /Views/{ControllerName} /Views/Shared /Pages/Shared 如果找到视图文件便会渲染视图...创建视图文件 /Views/Home/Time.cshtml @ViewBag.ServerTime -ken.io 视图渲染@ ViewBag.ServerTime会输出Action中赋值的内容,

    1.5K20

    【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    为了明确哪些Razor文件应该编译为Razor组件,我们引入了一个新的文件扩展名:.razor。在Razor组件模板中,所有组件文件现在都使用.razor扩展名。...只要使用_RazorComponentInclude MSBuild属性将这些文件标识为Razor组件文件,Razor组件仍然可以使用.cshtml文件扩展名来创建。...例如,该版本中的Razor组件模板指定Components文件夹下的所有.cshtml文件为Razor组件。...Endpoint路由集成 Razor组件现在已经集成到了ASP.NET Core中新的Endpoint路由系统。...此模板设计为运行长时间运行的后台进程的起点,就像您可能作为Windows服务或Linux守护进程运行一样。例如,从消息队列生成/消费消息,或者监视要处理的文件

    22.7K10

    跨平台开发体验: Windows

    由于ASP.NET Core框架在本质上就是由服务器和中间件构建的消息处理管道,所以在它上面构建的应用开发框架都是建立在某种类型的中间件上,整个ASP.NET Core MVC开发框架就是建立在用来实现路由的...一、注册服务与中间件 ASP.NET Core框架内置了一个原生的依赖注入框架,该框架利用一个依赖注入容器提供管道在构建以及请求处理过程中所需的服务,而这些服务需要在应用启动的时候预先注册。...这里所谓的终结点可以视为应用程序提供的针对HTTP请求的处理器,这两个终结点通过预先设置的规则将具有某些特征的请求(比如路径、HTTP方法等)映射到对应的终结点,进而实现路由的功能。...SayHello(string name) { ViewBag.Name = name; return View(); } } 由于我们调用View方法没有显式指定视图的名称...如下所示的就是SayHello.cshtml这个文件的内容,这是一个针对Razor引擎的视图文件。从文件扩展名(.cshtml)我们看出可以这样的文件可以同时包含HTML标签和C#代码。

    2K30

    或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

    1、使用小写路由   在我之前的一篇文章中(构建可读性更高的 ASP.NET Core 路由)有提到过,因为 .NET 默认采用 Pascal 的类命名方式,如果采用默认生成的路由,最终构建出的路由地址会存在大小写混在一起的情况...在配置 CORS 策略,我们可以设置只允许来源于某些 URL 地址的请求可以访问,或者是指定接口只允许某些 HTTP 方法进行访问,或者是在请求的 header 中必须包含某些信息才可以访问我们的接口...在下面的代码中,我定义了针对整个项目的跨域请求策略,这里我只是设置了对于接口请求方 URL 地址的控制,通过读取配置文件中的数据,从而达到只允许某些 IP 可以访问的我们接口的目的。..."Application": { "CorsOrigins": "*" } 3、添加接口版本控制   在一些涉及到接口功能升级的场景下,当我们需要修改接口逻辑而旧版本的接口无法停用的情况...因为我们在之前设置构建的 API 路由包含了版本信息,所以在最终生成的 Swagger 文档中进行测试,我们都需要在参数列表中添加 API 版本这个参数。

    1.2K20

    或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

    1、使用小写路由   在我之前的一篇文章中(构建可读性更高的 ASP.NET Core 路由)有提到过,因为 .NET 默认采用 Pascal 的类命名方式,如果采用默认生成的路由,最终构建出的路由地址会存在大小写混在一起的情况...在配置 CORS 策略,我们可以设置只允许来源于某些 URL 地址的请求可以访问,或者是指定接口只允许某些 HTTP 方法进行访问,或者是在请求的 header 中必须包含某些信息才可以访问我们的接口...在下面的代码中,我定义了针对整个项目的跨域请求策略,这里我只是设置了对于接口请求方 URL 地址的控制,通过读取配置文件中的数据,从而达到只允许某些 IP 可以访问的我们接口的目的。..."Application": { "CorsOrigins": "*" }   3、添加接口版本控制   在一些涉及到接口功能升级的场景下,当我们需要修改接口逻辑而旧版本的接口无法停用的情况...因为我们在之前设置构建的 API 路由包含了版本信息,所以在最终生成的 Swagger 文档中进行测试,我们都需要在参数列表中添加 API 版本这个参数。

    1.4K40

    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(中)

    第 3 章 ASP.NET Core 核心特性 3.3 依赖注入 通常情况下,应用程序由多个组件构成,而组件与组件之间往往存在依赖关系 当我们需要获取数据,通常的做法是实例化依赖的类,然后调用类里面的方法...在 ASP.NET Core 内置的依赖注入容器中,服务的生命周期有如下3种类型: Singleton:容器会创建并共享服务的单例,且一直会存在于应用程序的整个生命周期内 Transient:每次服务请求...,映射完成后,再将请求传给对应的路由处理器处理 对于 ASP.NET Core MVC,定义路由的方法有以下两种: 基于约定的路由 特性路由 基于约定的路由需要在 Startup 类中指明,具体来说,应该在配置...; }); 指定参数,也可以添加约束 app.UseMvc(routes => { routes.MapRoute("default",template: "{controller=Home...,并使它继承自 ValidationAttribute 类 使待验证的 Model 实现 IValidatableObject 接口 过滤器:与中间件很相似,在 ASP.NET Core MVC 中,它们能够在某些功能的前后执行

    1.2K10

    ASP.NET MVC路由扩展:路由映射

    ASP.NET路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但是对于ASP.NET MVC应用来说,请求的目标不再是一个具体的物理文件,而是定义在某个Controller...在这里需要特别指出的是,如果MapRoute方法没有指定命名空间,则通过属性Namespaces表示的命名空间列表会被使用;反之,该属性中包含的命名空间直接忽略。...当我们通过Visual Studio的ASP.NET MVC项目模版创建一个Web应用的时候,在的Global.asax文件中会生成如下的代码通过调用AreaRegistration的静态方法RegisterAllAreas...的XML文件存放在ASP.NET的临时目录下,具体的路径如下。...进一步来说,如果在调用MapRoute方法指定了命名空间列表,那么AreaRegistration类型所示在命名空间会被忽略。也就是说,后者是前者的一个后备,前者具有更高的优先级。

    1.4K100

    ASP.NET Core 实战:构建带有版本控制的 API 接口

    ASP.NET Core 的脚手架程序添加完成 Area 后,则会打开一个文件提示我们需要在 MVC 中间件中创建适用于 Area 的路由定义。...); });   当我们添加好路由规则定义后,我们在 Area 的 Controllers 文件夹下添加一个 WebAPI Controller。...不同于 ASP.NET 中的 Area ,当我们在 ASP.NET Core 创建好一个 Area 之后,脚手架生成的文件中不再有 XXXAreaRegistration(XXX 为 Area 的名称)...DefaultApiVersion:指定在请求中未指明版本要使用的默认 API 版本。这将默认版本为1.0。   ...通过 Swagger 自带的 API 测试工具测试下我们的接口,原来这里请求的 Url 中已经包含了我们定义的版本信息,当我指定错误的版本信息,工具也会告诉我们这个版本的接口不存在。 ?

    1.2K30

    ASP.Net请求处理机制初步探索之旅 - Part 3 管道

    Page Load 在这部分ASP.NET控件完全加载且在这里你可以写UI操作逻辑或任何其他逻辑。NOTE:这个事件也是我们最常见且最常用的一个事件。...HttpModule ReleaseRequestState 如果你想要保存对某些状态变量的更改,例如:Session变量的值。...对于每个请求,ASP.NET会通过扩展名选择匹配相应的HttpHandler类型,成功匹配后,该实现被触发。...三、ASP.NET MVC经历的管道事件概览 在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。 ?   ...因为当我们在HttpApplication的第一个管道事件,使用MapRoute()方法注册路由的时候,已经通过Route类的构造函数把MvcRouteHandler注入到路由中了。

    1.2K20

    有趣的10个CMD命令「建议收藏」

    -R 同样使用路由标头测试反向路由(仅适用于 IPv6)。 根据 RFC 5095,已弃用此路由标头。 如果使用此标头,某些系统可能丢弃 回显请求。...同理,当我们想删除所有文件,即可使用通配符*.*。 这个命令是这样使用的。 删除一个或多个文件。...3) 当指定远程机器,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。...这些关键字为: eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始忽略的行数。 delims=xxx - 指分隔符集。...查找可执行文件,如果没有相配的扩展名,看一看该名称是否 与目录名相配。如果确实如此,START 会在那个路径上调用 Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。

    5.9K10

    Linux命令行:find的26个用法示例

    注意:当指定文件夹的时候(例如示例中的"./test"文件夹),忽略末尾的斜杠是没有问题的。...但是,如果文件夹是一个指向其它位置的链接(symlink),你必须在末尾写上斜杠才能使find命令正常工作(find ./test/)。 忽略大小写 在查找文件忽略大小写往往非常有用。...反向查找 除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件当我们知道要在查找中排除哪些文件,这个选项就能发挥作用了。 $ find ....OR 操作符 当我们使用多个查找条件, find 命令会将它们通过 AND 操作符结合起来,也就是说,只有满足所有条件的文件才会被列出。...当我们想要找出哪些文件在某段时间内修改的时候,这个查找条件将会非常方便。我们来看几个例子。 15. 查找过去的第 N 天修改过的文件 # find / -mtime 50 16.

    1.1K130

    Linux命令行:find的26个用法示例

    注意:当指定文件夹的时候(例如示例中的"./test"文件夹),忽略末尾的斜杠是没有问题的。...但是,如果文件夹是一个指向其它位置的链接(symlink),你必须在末尾写上斜杠才能使find命令正常工作(find ./test/)。 忽略大小写 在查找文件忽略大小写往往非常有用。...反向查找 除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件当我们知道要在查找中排除哪些文件,这个选项就能发挥作用了。 $ find ....OR 操作符 当我们使用多个查找条件, find 命令会将它们通过 AND 操作符结合起来,也就是说,只有满足所有条件的文件才会被列出。...当我们想要找出哪些文件在某段时间内修改的时候,这个查找条件将会非常方便。我们来看几个例子。 15. 查找过去的第 N 天修改过的文件 # find / -mtime 50 16.

    1.2K80

    Linux命令行:find的26个用法示例

    注意:当指定文件夹的时候(例如示例中的"./test"文件夹),忽略末尾的斜杠是没有问题的。...但是,如果文件夹是一个指向其它位置的链接(symlink),你必须在末尾写上斜杠才能使find命令正常工作(find ./test/)。 忽略大小写 在查找文件忽略大小写往往非常有用。...反向查找 除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件当我们知道要在查找中排除哪些文件,这个选项就能发挥作用了。 $ find ....OR 操作符 当我们使用多个查找条件, find 命令会将它们通过 AND 操作符结合起来,也就是说,只有满足所有条件的文件才会被列出。...当我们想要找出哪些文件在某段时间内修改的时候,这个查找条件将会非常方便。我们来看几个例子。 15. 查找过去的第 N 天修改过的文件 # find / -mtime 50 16.

    1.1K130
    领券