第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输出 第2部分-用Serilog记录所选终结点的附加属性(本文) 第3部分-使用Serilog.AspNetCore...,我描述了如何配置Serilog的RequestLogging中间件为每个请求创建“摘要”日志,以替换默认情况下从ASP.NET Core获取的10个或更多日志。...在本文中,我将展示如何向Serilog的摘要请求日志中添加其他元数据,例如请求的主机名,响应的内容类型或从ASP.NET Core 3.0中使用的终结点路由中间件所选择的端点名称。...然后,您可以调用Set()方法,将其他属性附加到请求日志消息中。...这些属性将作为附加属性添加到Serilog生成的结构化日志中。在下一篇文章中,我将展示如何将MVC特定的属性值添加到请求日志中。敬请期待吧!
从 Visual Studio 2017 Enterprise 版本 15.7 开始,ASP.NET Core 和.NET Core 也支持该功能。...后退或前进到某个事件会自动激活所选事件的历史调试。 ? 后退或前进时,Visual Studio 进入历史调试模式。 在此模式下,调试器上下文将切换到记录所选事件时的时间。...但是,IntelliTrace 只捕获已打开的“局部变量”和“自动”窗口中的数据,并且只捕获已展开的且在视图中的数据 。 在仅事件模式下,通常没有变量和复杂对象的完整视图。...对总体单步执行性能的影响取决于应用程序。 拍摄快照大约耗用 30 毫秒。 拍摄快照时,为应用的进程创建分支且分支副本会挂起。 查看快照时,Visual Studio 将附加到进程的分支副本。...对于每个快照,Visual Studio 仅复制页表并将页设置为写入时复制。 如果堆上的对象在具有关联快照的调试器步骤之间更改,则将复制相应的页表,而产生最小的内存成本。
记录来自MVC的其他信息 就目前而言,ASP.NET Core中的一个特征是许多行为被MVC“基础结构”锁定在了MVC框架内部来实现。端点路由是采用MVC功能并将其下移到核心框架中的首要工作之一。...ASP.NET Core团队一直在努力将更多MVC特定功能(例如模型绑定或操作结果)从MVC中移除,然后“下推”到核心框架中。...RequestLogging中间件的扩展方法通过使用IDiagnosticContext将附加属性写入Serilog的请求日志中。...这也仅适用于在HttpContext可用的值。在这篇文章中,我将展示如何在过滤器中使用IDiagnosticContext,以及将MVC特定值添加到日志中。...我还将展示如何在page过滤器中添加RazorPages特定的值(如HandlerName)。 使用自定义过滤器记录MVC属性 过滤器相当于为每个请求运行的类似于MVC的微型中间件管道。.
Match方法从表示请求的HttpRequestMessage对象中获得当前的HTTP方法,根据它是否在允许的列表之内从而做出是否满足约束的最终判断。...至于如何将封装路由数据的HttpRoute对象附加到某个HttpRequestMessage对象上,实际上就是将对象添加到HttpRequestMessage的Properties属性表示的字典对象中,...ASP.NET Web API路由系统中的路由表实际上就是一个HttpRouteCollection对象。...七、注册路由映射 与ASP.NET路由系统下的路由映射类似,ASP.NET Web API下的路由映射就是为针对应用的路由表添加相应HttpRoute对象的过程。...我们可以直接根据指定的URL模板,以及针对路由变量的默认值和约束来创建相应的HttpRoute,并最终将其添加到通过HttpConfiguration的Routes对象表示的路由表中从而到达注册路由映射的目的
阻塞调用是指当前请求未完成之前会一直阻止下一个执行的调用。阻塞调用或同步调用可以是任何东西,可以是从API中获取数据,也可以是执行一些内部操作。您应该始终以异步方式执行调用。...它可以是任何操作如:图像上传,文件上传或其他任何操作。如果您试图以同步的方式完成它,那么它会阻塞主线程并停止其他后台执行,直到I/O完成为止。...使用存储的数据,而不是调用服务器。 将数据保存在某个位置并让下次请求从这个地方获取数据而不是从服务器获取是一种很好的做法。在这里,我们可以使用缓存。...您可以使用EF Core中的一些可用功能,可以帮助您在数据库端筛选数据的操作,如:WHERE,Select等。 使用Take和Skip来获取我们所必须要显示的数量的记录。...这里可以举一个分页的例子,在这个例子中,您可以在单击页码的同时使用Take和Skip来获取当前页面的数据。
获取正确的工具,然后再调试时提取正确的信息。根据获取的正确的错误信息,可以找到问题的根源所在。找到问题根源所在,你就能够解决该错误了。...但是,如果你附加到正在运行的进程时,则已加载的模块将保持优化状态。也就是说它们是在 Release模式下构建的。优化代码后,将不会遇到某些断点,也不会显示某些局部变量。这几乎破坏了调试体验。...OzCode允许在调试过程中以几乎完美的方式研究LINQ表达式。 ? 要了解有关使用或不使用OzCode调试LINQ的更多信息,请查看我的文章:如何在C#中调试LINQ查询。 3....数据提示 - 数据提示是将鼠标悬停在Visual Studio中的变量上时看到的弹出窗口。OzCode用自己的更好的数据提示替换了该窗口。它允许“收藏夹”属性,搜索,导出为JSON和其他功能。 4....以下是一些可以使用性能计数器衡量的事情的示例: CPU使用率 内存使用率 进程中引发的异常数 I/O字节的读写 对你的asp.net应用程序的请求数 在asp.net应用程序中请求响应时间 你可能会监视成千上万种不同的计数器
当然,SessionID还有很多其他的作用,我们会在后面提及到。 除了SessionID,在每个Session中还包含很多其他信息。...其中Session(“..”)中的..就好像变量 名称,Session(“..”)=$$中的$$就是变量的值了。你只需要写上句话,在这个用户的每个页面中都可以访问..变量中的值了。 ...在其他的服务器端脚本语言如JSP、PHP等中也有其类似的对象,只是叫法或者使用方法上不太一样。...object) throws HibernateException :将参数给出的 Object从当前Session对象类中删除,使这个对象从持久态变成游离态,这种状态的改变不会引起对数据库的同步,后面详细介绍...:更新一个对象到数据库中,后面在详细介绍 public void delete (Object object)throws HibernateException:从数据库中删除和参数指定的对象对应的记录
.NET 4.0中所包含的ASP.NET Ajax 库是一个完全不一样的Ajax库,现在完全采用New BSD协议,也就是完全开源了,它是 CodePlex Foundation (CodePlex.org...另外在msdn杂志上还有几篇asp.net ajax 4的文章: ASP.NET AJAX 4.0 中的数据绑定 ASP.NET AJAX 4.0 中的条件呈现 ASP.NET AJAX 4.0 中的动态数据绑定...默认情况下,JSLint 在遇到以下内容时将显示警告:全局变量;没有使用分号结束的语句;后面没有语句块的 if、while、do 和 for 语句;无法访问的代码及其他情况。...还可以通过 JSLint 的选项配置执行其他检查。例如,您可以指示 JSLint 不允许使用未定义的变量、不允许使用一元递增和递减运算符(++ 和 --)以及是否允许使用 eval 函数。...还可以试试 JSLint.VS,这是一个免费的 Visual Studio 插件,您可以直接从 Visual Studio IDE 中在某个文件或所选代码块上运行 JSLint。
HostedHttpRoute可以直接这个Key从通过HttpRequestMessage的Properties属性表示的属性字典中获取当前HTTP上下文。...除了得到当前HTTP上下文之外,HostedHttpRoute还会通过调用扩展方法GetRouteData方法获取附加在HttpRequestMessage对象上的HttpRouteData对象。...对象转换成Route对象并添加到ASP.NET的全局路由表中。...ASP.NET路由系统对每个抵达的请求进行拦截,如果当前请求与路由表中的某个Route匹配,相应的路由数据被解析出来并保存在RequestContext中。...随后,ASP.NET路由系统的实现者UrlRoutingModule从匹配的Route中获取RouteHandler,这是一个HttpControllerRouteHandler对象,后者提供的HttpHandler
路由注册的核心就是在全局路由表中添加一个Route对象,该对象的绝大部分属性都可以通过MapPageRoute方法的相关参数来指定。接下来我们通过实现演示的方式来说明路由注册的一些细节问题。...除此之外,我们还在注册的路由对象上附加了两个变量,表示对变量默认值的说明(defaultCity:BeiJing;defaultDays:2)。...通过地址解析出来的变量被存储数Values属性中,而在进行路由注册过程为Route对象DataTokens属性定义的变量被转移到了RouteData的同名属性中。[实例源代码下载] ?...如果请求地址中的内容不能符合相关变量段的约束条件,则意味着对应的路由对象与之不匹配。...从界面上的输出结果我们不难看出,虽然请求地址完全满足我们注册路由对象的URL模板模式,但是ASP.NET并没有对请求地址实施路由。
在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。...捆绑可以很容易地将多个文件合并或捆绑到一个文件中。您可以创建 CSS,JavaScript 和其他包。压缩可以优化脚本和 CSS 代码,如去除不必要的空格和注释,缩短变量名到一个字符。...开始的时候,我在 _Layout.cshtml 母版页的顶部编写了一些服务器端代码。我所做的头两件事情就是让从程序集信息类中获取应用的序列号,从应用程序设置中获取检索的基本 URL。...下面的示例应用程序的路由表只需要分析出三条路线: 一个用于根路径'/' 一个标准路由路径,如'/:section/:tree' 包含路由参数的路由,如'/:section/:tree/:id' 我决定从...在这第二部分讲解中,作者解决了如何在 ASP.NET MVC 中集成 AngularJS 遇到的大部分问题。
能够很容易地引入其他不同的存储机制,例如 SharePoint, Windows Azure 存储表服务, NoSQL 数据库等。...静态的Create方法将返回AppUserManger实例,它用来操作和管理用户,值得注意的是,它需要传入OwinContext对象,通过该上下文对象,获取到存储在Owin环境字典中的Database...获取所有的Users对象 在上一小节中,通过CreatePerOwinContext方法将AppIdentityDbContext和 AppUserManager的实例注册到OwinContext中,我们可以通过...OwinContext对象的Get方法来获取到他们,将下面代码放在Controller中,方便供Action获取对象: private AppUserManager UserManager {...Identity 其他API介绍 在上一小节中,介绍了CreateAsync 的使用,接下来一鼓作气,继续ASP.NET Identity之旅。
(从进程中分配独立的内存空间,AppDomain间不能共享代码和数据空间),当一个AppDomain中的程序出现异常甚至崩溃时不会影响到其他AppDomain中运行的程序。...而工作进程通过named pipe同步请求web server的信息(如调用Server对象获取服务器信息)。 ? 图依然秉承着我很丑但很有用的原则,嘻嘻!!...中;这时从线程池获取空闲线程执行程序集(写一个网站发布成两个虚拟目录进行测试,可以看到执行http请求处理的线程不断地变化,两个虚拟目录会出现使用相同线程的情况)。...程序集中的变量和状态均保存在所属的AppDomain的内存中,如HttpContext.Current.Items、Application等(Application对象其实就是一张HashTable,可以被多个线程...状态变量保存在对应的AppDomain中。
1.基本概念:所谓的页面生命周期,指的是一个ASP.NET页面类对象从初始化到销毁经过的步凑过程; 2.大致步凑: (1)初始化:PreInit,Init,InitComplete (2)加载数据和页面...事件处理过程 HttpApplication 类的实例是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的。...应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件: 1.BeginRequest 开始处理请求(在 ASP.NET 响应请求时作为 HTTP 执行管线链中的第一个事件发生...6.ResolveRequestCache 获取页面缓存结果(当 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过事件处理程序(例如某个页或 XML Web services...7.PostResolveRequestCache 已获取缓存(在 ASP.NET 跳过当前事件处理程序的执行并允许缓存模块满足来自缓存的请求时发生。)
此评估算法基于 URL 中发现的段及其在字符串中的位置。例如,文本段比参数段更具体,因此具有更多路由约束的参数段被视为比存在更少约束的其他段更具体。...此外,正如在 ASP.NET MVC 中发生的那样,解析 URL 时,表中的路由将从最具体到最不具体进行评估,并且搜索在首次匹配时停止。...路由器之战:Blazor 与Angular 很长一段时间,路由逻辑的实现都隐藏在 Web 服务器或服务器端框架(如 ASP.NET)的折叠中。...例如,在 ASP.NET Core 中,开发人员可以通过以编程方式将路由添加到表中来显式定义路由,让系统使用默认路由约定或使用控制器方法上的属性来确定候选项。...类型匹配是参数路由和自动绑定到变量的常见问题。如果 URL 的段包含文本字符串,但绑定变量声明类型为 int,会发生什么情况?
DisplayAttribute 提供允许为实体分部类的类型和成员指定可本地化字符串的通用特性。 DisplayColumnAttribute 指定作为外键列显示在被引用表中的列。...AmbientValueAttribute 指定要传递给属性的值,以使该属性从另一个源中获取其值。 这称为“环境”。 此类不能被继承。...InstallerTypeAttribute 为安装组件的类型指定安装程序。 InstanceCreationEditor 从 PropertyGrid 中的下拉框中创建特定类型属性的实例。...对组件的特定实例授予许可证。 LicenseContext 指定何时可使用授权的对象,并且提供一种方法,用以获取为支持在其域内运行的许可证所需要的附加服务。...CollectionChangeEventHandler 表示处理将元素添加到集合中或从集合中移除元素时引发的 CollectionChanged 事件的方法。
我很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2的一部分提供! 如何获取?...除了所有健康检查包之外,BeatPulse团队还结合了其他功能,如脉冲跟踪(Application Insights和Prometheus),我们可以为故障通知和UI界面配置不同的监控系统,并具有一个可以查看健康状态的全局概览图表...这些功能仍在进行中,尚未准备好发布,但我们希望在未来几个月内将它们作为附加组件提供。...如何将项目迁移到ASP.NET Core 2.2 要将ASP.NET Core项目从2.1迁移到2.2,请打开项目的.csproj文件并将TargetFramework元素的值更改为netcoreapp2.2...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序的其他信息,请参阅此文章。
用户可以通过Nuget安装使用,并通过简单的配置与编码使用不同类型的锁,如文件锁、本地锁、数据库锁等。该组件也提供了锁的获取与释放方法。...文中以具体的客户订单表为例,演示了初始化工作簿、获取工作表、利用UNIQUE函数生成客户名称唯一列表及创建主下拉列表等步骤,并展示了如何通过动态数组函数CHOOSECOLS和FILTER获取依赖OrderID...更新中添加推荐组件 调试和诊断 使用条件断点和跟踪点增强调试 简化内存工具中的内存使用情况调查 EXE 的目标检测 改进了“附加到进程”对话框 C++和游戏开发 CMake目标固定 构建见解模板视图 添加了虚幻引擎宏的缩进...如何在 ASP.NET Core 中多次读取通常只能读取一次的请求正文。...-89493ab24e10 了解如何在不使用 Blazor 或 ASP.NET Core 的情况下在浏览器中运行基于 WebAssembly 构建的 .NET 应用程序。
C#连接Oracle数据库 本文演示了如何在C#中连接Oracle数据库。...string sqlSql = “SELECT * FROM A”; //从配置文件中获取连接字符串信息 OracleConnection conn = new OracleConnection(Configurat...数据缓存支持将频繁访问的数据对象可编程地存放在内存中。这一特性可扩展以广泛地提高查询Oracle数据库中数据的ASP.NET应用的性能。...浏览量 如何利用C#代码获取SQLite的元数据 SQLite数据库,在很多场合已经用得比较多,由于我的代码生成工具的需要,需要把SQLite的表、字段、视图等信息获取出来,以便实现各种数据库快速生成项目工程的操作...这里就需要利用C#获取SQLite数据库的元数据了,和其他数据库一样。
开发人员倾向在服务中提供所有支持的方法的静态描述,从正式约定(如 SOAP 服务中的 Web 服务描述语言 (WSDL))到非超媒体 Web API 中的简单文档都是如此。...可以使用哪些超媒体项目主要由所选的媒体类型决定。我们当前用于构建 Web API 的很多媒体类型(如 JSON 或 XML)和 HTML 一样,不提供表示链接或表单的内置概念。...现在我们来了解一下如何在使用 ASP.NET Web API 的生产环境中实际实施这些原理,并使用此框架提供的所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序的概念。...实际工作在 WriteToStream 和 ReadFromStream 方法中完成(如图 7 中所示),这些方法将分别使用 XmlWriter 和 XmlReader 来将对象写入流或从流中读取对象。...Link 方法接收两个变量: 路由名称和要构成 URL 的值。 图 9 显示对于以前的产品目录示例,如何在 Get 方法中使用 UrlHelper 类。
领取专属 10元无门槛券
手把手带您无忧上云