让IIS支持.NET Web Api PUT和DELETE请求

前言 有很长一段时间没有使用过IIS来托管应用了,今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的,关键是POST和GET请求都是正常的,只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了IIS默认情况下拒绝处理PUT和DELET

DevOps | 如何快速提升团队软件开发成熟度,快速提升研发效能?

今天一个小伙伴问我,如何「快速提升」一个团队的软件开发成熟度?我犯难了。我个人理解一个团队的软件开发成熟度涉及的东西很多,但最简单最直接的方法就是发钱涨工资,可是估计很多公司不愿意,那就只有扣了。 快速提升的目标 短期制度解决 如果想短期快速提升,那就直接梳理好最关键点,制定规章制度,然后通过奖惩制

SICP:求值和环境模型(Python实现)

一个环境就是帧(frame) 的一个序列,每个帧是包含着一些绑定(bindings) 的表格。这些约束将一些变量名字关联于对应的值(在一个帧内,任何变量至多只有一个绑定)。每个帧还包含一个指针,指向这个帧的外围环境(enclosing environment)。如果由于当前讨论的目的,将相应的帧看做是全局(global) 的,那么它将没有外围环境。一个变量相对于某个特定环境的值,也就是在这一环境中

驱动开发:内核层InlineHook挂钩函数

内核中的`InlineHook`函数挂钩技术其实与应用层完全一致,都是使用劫持执行流并跳转到我们自己的函数上来做处理,唯一的不同只有一个内核`Hook`只针对内核API函数,虽然只针对内核API函数实现挂钩但由于其身处在最底层所以一旦被挂钩其整个应用层都将会受到影响,这就直接决定了在内核层挂钩的效果是应用层无法比拟的,对于安全从业者来说学会使用内核挂钩也是很重要的。

操作系统开发:启用内存分页机制

目前我们已进入保护模式,但依然会受到限制,虽然地址空间达到了4GB,但此空间是包括操作系统共享的4GB空间,我们把段基址+段内偏移地址称为线性地址,线性地址是唯一的,只属于某一个进程。在我们机器上即使只有512MB的内存,每个进程自己的内存空间也是4GB,这是指的虚拟内存空间。一直以来我们都是在内存

4.1 C++ STL 动态链表容器

List和SList都是C++ STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点。其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指针指向后一个节点,因此相对来说更节省存储空间,但不支持反向遍历,同时也没有List的排序功能。双向链表的数据元素可以通过链表指针串接成逻辑意义上的线性表,不同于采用线性表顺序存储结构的`Vector`

6.3 应用动态内存补丁

动态内存补丁可以理解为在程序运行时动态地修改程序的内存,在某些时候某些应用程序会带壳运行,而此类程序的机器码只有在内存中被展开时才可以被修改,而想要修改此类应用程序动态补丁将是一个不错的选择,动态补丁的原理是通过`CreateProcess`函数传递`CREATE_SUSPENDED`将程序运行起来并暂停,此时程序会在内存中被解码,当程序被解码后我们则可以通过内存读写实现对特定区域的动态补丁。

PPT 三维地球动画

Windows 10 系统自带 画图3D,可以无缝和PPT衔接在一起 百度找一张图片 拖动,包围 到PPT中,插入3D模型(只有 office 365 有) 我这边没有,所以不好继续了 视频地址:(https://www.bilibili.com/video/BV1w54y1Q7cZ?p=7)[ht

从源码层面深度剖析Spring循环依赖

作者:郭艳红 以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean? 对于单例Bean来说,在Spring容器整个生命周期内,有且只有一个对象。 Sprin

MySQL性能优化浅析及线上案例

关于数据库的性能优化其实是一个很复杂的大课题,很难通过一篇帖子讲的很全面和深刻,这也就是为什么我的标题是‘浅析’,程序员的成长一定是要付出代价和成本,因为只有真的在一线切身体会到当时的紧张和压力,对于一件事情才能印象深刻,但反之也不能太过于强调代价,如果可以通过一些别人的分享就可以规避一些自己业务的问题和错误的代价也是好的。

CGLIB动态代理对象GC问题排查

## 一、问题是怎么发现的 最近有个新系统开发完成后要上线,由于系统调用量很大,所以先对核心接口进行了一次压力测试,由于核心接口中基本上只有纯内存运算,所以预估核心接口的压测QPS能够达到上千。 压测容器配置:4C8G 先从10个并发开始进行发压,结果cpu一下就飙升到了100%,但是核心接口的qp

OpenSSL 生成 RootCA (根证书)并自签署证书(支持 IP 地址)

背景 某机房内部访问需要配置 HTTPS,网上找的一些证书教程都不是特别好,有些直接生成证书,没有根 CA 的证书导致信任不了 Ubuntu 机器,有些教程只有域名生成,没有 IP 生成,有些甚至报错。故发一个笔者在 Ubuntu 22.04 机器上测试正确可用的流程,这里使用 10.12.0.2

秋招还没Offer怎么办?

如果你是双非院线、没有实习经历、没有出众的技术(算法没刷一千道,也没做过 Spring Cloud 项目)、现在还没有面试(或只有少量的面试)、并且目前还没有 Offer,那么恭喜你,你和目前大部分同学的状态是一样的。 相信我,你并不孤单。 有人会说:“瞎扯,你去看牛客,别人都在为选阿里还是字节而发

数据结构小结

个人认为数据结构有点偏向理论知识点,从这些理论知识点,我们可以知道各种数据结构的特点,然后在特定的场景下使用对应的数据结构来存储。 基础的数据结构 从逻辑上来说基础的数据结构只有线性结构、非线性结构,也就是数组、链表。其他复杂一点的如队列、栈、树、图、hash table 都可以通过数组和链表的方式

Rust 实现的简单 http 转发

学习Rust时练手的小程序,功能类似代理,将网络请求转发到新的地址和端口。 目前只有http请求的转发,未来希望能够代理各种常用的网络协议。 代码地址:https://gitee.com/wangyubin/mario 概要 程序主要有2个参数: -L:监听的地址和端口 -F:转发的地址和端口 整体

mysql锁及锁出现总结

转载请注明出处: 1.按锁粒度分类: 行锁:锁某行数据,锁粒度最小,并发度高;; 行锁是指加锁的时候锁住的是表的某一行或多行记录,多个事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问; 行锁是对所有行级别锁的一个统称,比如下面说的记录锁、间隙锁、临键锁都是属于行锁 表锁:锁整张表,

基于AQS实现自定义同步类

Mutex(互斥锁) Mutex是一个不可重入的互斥锁实现。锁资源(AQS里的state)只有两种状态:0表示未锁定,1表示锁定。下边是Mutex的核心源码: class Mutex implements Lock, java.io.Serializable { // 自定义同步器 private

编写Java代码时应该避免的6个坑

通常情况下,我们都希望我们的代码是高效和兼容的,但是实际情况下代码中常常含有一些隐藏的坑,只有等出现异常时我们才会去解决它。本文是一篇比较简短的文章,列出了开发人员在编写 Java 程序时常犯的错误,避免线上问题。 # 1、大量使用 Enum.values `Enum.Values()` 的问题在于

头一次见单例模式讲的如此透彻

## 简介 单例模式是一种常用的软件设计模式,用于创建类型。通过单例模式的方法创建的类在当前进程中只有一个实例。单例模式的类只能允许一个实例存在。单例模式的作用是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个。 组成部分: 1. 私有化构造方法。 2. 私有化内部实例。 3.

软件要想做的好,测试必定少不了

摘要:有句话说道:“质量是设计出来的,而不是测出来的。”这其实就是在追根溯源bug的产生,因为只有知道了其根源才可以行之有效的解决这一问题。因此要将测试左移到软件最初的设计阶段,并贯穿整个研发活动的始终。 本文分享自华为云社区《测试左移》,作者:华为云PaaS服务小智 。 什么是测试左移 在传统的软