聚合文章列表
0 浏览

图文详解IIS网站服务器伪静态化配置

最近发现用户群里普遍咨询IIS服务器的静态化配置问题,虽然像我们这种“老司机”从来不用IIS,也不建议大家去用IIS。但响应广大用户需求,还是和大家一起分享交流下IIS服务器是如何配置伪静态化的。演示环境:服务器系统:Windows200364位IIS版本:IIS6网站程序:蝉知企业门户系统V6.6我在服务器上用蝉知系统搭建好一个站点后,后台URL类型设置为pathinfo,此时前台访问正如预料的那样~~OK,问题展现出来了,接下来我们上干货。操作步骤:一.下载IIS伪静态组件和ISAPI_Rewrite3破解文件1.官网下载安装包32位系统请下载:http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0112.msi64位系统请下载:http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0112_x64.msi注意:如果是WindowsS

.Net 2017-11-09 发布
0 浏览

微信公众平台快速开发框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta发布

写在前面最近比较忙,都没有好好维护博客,今天拿个半成品来交代吧。记不清上次关于微信公众号快速开发框架(简称JCWX)的更新是什么时候了,自从更新到支持.NetFramework4.0以后基本上就没怎么维护了,一方面工作比较忙,一方面家庭也需要维护,男人,你懂的。自从NetCore发布以后,一直想把JCWX更新到Core版本,从6月开始就着手更新了,大概花了一个月时间,更新到了NetCore1.1版本,当时并没有对外公开,只是在Nuget上发布了下,随后8月的时候2.0发布了,借着机会,我把代码更新了下,使其支持.NetCore2.0,也就是现在你看到的版本。在更新到NetCore1.1的时候,原本不打算继续了,因为苏大大的公众号SDK已经非常强大了,不过,没想到在Nuget上未公开的版本竟然也有上百名开发者下载使用,这让我很感动,所以我决定坚持下去。为了与之前的版本区分,我在Github上新建了项目:https://github.com/JamesYing/JCWXCore目前我在devBra

.Net 2017-11-09 发布
0 浏览

SignalR实现消息推送,包括私聊、群聊、在线所有人接收消息(源码)

一、关于SignalR1、简介:Signal是微软支持的一个运行在DotNET平台上的htmlwebsocket框架。它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。可访问其官方网站:https://github.com/SignalR/获取更多资讯。2、SignalR的实现机制与.NETWCF或Remoting是相似的,都是使用远程代理来实现。在具体使用上,有两种不同目的的接口:PersistentConnection和Hubs,其中PersistentConnection是实现了长时间的Javascript轮询(类似于Comet),Hub是用来解决实时信息交换问题,它是利用Javascript动态载入执行方法实现的。SignalR将整个连接,信息交换过程封装得非常漂亮,客户端与服务器端全部使用JSON来交换数据。下面就Hubs接口的使用来讲讲整个流程:(1),在服务器端定义对应的hub

.Net 2017-11-09 发布
AD 友情赞助
0 浏览

[ay的quartz.net 学习笔记[2/5]

继续上次demo,publicclassPrintMessageJob:IJob{publicvoidExecute(IJobExecutionContextcontext){Console.WriteLine("Hello!");}}classProgram{staticvoidMain(string[]args){varproperties=newNameValueCollection();properties["quartz.scheduler.instanceName"]="RemoteServerSchedulerClient";//设置线程池properties["quartz.threadPool.type"]="Quartz.Simpl.SimpleThreadPool,Quartz";properties["quartz.threadPool.threadCount"]="5";properties["quartz.threadPool.threadPriority"]="

.Net 2017-11-09 发布
0 浏览

C# 取Visio模型信息的简易方法

最近的一个项目,要求导出Visio图纸,因为是建筑类的,所以,需要设置墙壁,门,房间等信息的参数。拿墙壁为例,选中墙壁模型,右键属性,会弹出以下对话框。需要设置墙长、墙壁厚度等一些列信息。现在C#操作Visio里例子比较少,所以,花了好久,都没有看到有用的帖子,直到今天下午,在Bing里发现了一个帖子,顿时让我受益匪浅。原贴地址:http://mikeborozdin.com/post/reading-and-writing-visio-shape-information-with-c/操作方法如下:一、打开Visio的开发者模式文件--选项--高级--以开发人员模式运行二、查看模型的属性选中模型--右键显示ShapeSheet,在Visio的下面就会出现模型的所有属性了。下滑,可以在ShapeData里看到此模型的属性信息三、C#代码操作1、打开墙模型模板WALL_M.VSS是墙的模型模板,这个推荐大家用everything搜索一下,就能拿到模板路径了,自己需要哪个去里

.Net 2017-11-09 发布
0 浏览

这是你心心念念的.NET栈的微服务架构实践

作者|杨丽、张辉清编辑|雨多田光文末有demo下载一、MSA简介1.1、MSA是什么微服务架构MSA是MicroserviceArchitect的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯、互相配合,为用户提供最终价值。它与SOA之间的区别如下:1.2、我们的MSA框架我们的微服务框架MsaFx.dll是个基于ServiceStack4.0.60包装实现的.NETWebServices框架,而ServiceStack本身支持通用的轻量级协议和Metadata。MsaFx与普通WebServices框架如WCF相比,主要优势如下:1、高性能:性能好、速度快。2、支持跨平台运行:基于MsaFx开发出的WebServices既能够运行在Windows环境中,又能够运行在支持Mono的Linux环境中。3、支持多协议:如JSON格式的也支持XSD。4、更加Web化

.Net 2017-11-09 发布
AD 友情赞助
0 浏览

使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用

在WPF中将一个现成的Bitmap位图转换成ImageSource用于显示一个麻烦的事儿,因为WPF并没有提供多少可以转过来的方法。不过产生Bitmap来源却非常多,比如屏幕截图、GDI图、其它非托管框架生成的图片。WPF官方提供了一种方法,使用System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap()方法。官方解释称这是托管和非托管位图相互转换所用的方法。然而此方法有一个很严重的弊端——每次都会生成全新的位图,即便每次DeleteObject之后,内存依然不会即时释放。DeleteObject:[DllImport("gdi32")]staticexternintDeleteObject(IntPtro);DeleteObject的指针源于Bitmap.GetHbitmap()方法,且得到的指针会作为System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap

.Net 2017-11-09 发布
0 浏览

C#使用Oracle.ManagedDataAccess.dll

在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了。在那时没有ODP.NET,但visualstudio却对Oralce数据库的调用进行了集成,就是下图中的这个,尽管现在使用这个的时候visualstudio提醒过时的,但在那时却是非常好用的。为什么现在visualstudio中这个程序集依然能使用,有ODP.NET,单单要拿出Oracle.ManagedDataAccess.dll进行本文的重点呢?1、visualstudio中提醒过时,因为微软和甲骨文存在数据库的竞争关系,并且从.NET的更新来看这个程序集没有再更新过,对于数据库一直在更新而调用的程序集一直不更新敢用下去么?还有一个我认为非常重要的原因就是使用这个程序集,摆脱不了每一个运行程序的客户机上都要去安装Oracle客户端的事实,试想一下,如果用户数量巨大的时候,安装客户端的工作量就相当的大,很耗费资源;2、甲骨文后来出了ODP.NET,各种资料以及官网上都说需要安装ODP.NET,然后引用Or

.Net 2017-11-09 发布
0 浏览

C# 搜索算法

本文主要讲C#搜索算法。Bdf算法这算法是一个模糊的算法,用在用户在找一个他不确定的文本。判断文本和匹配的字符是否有相同顺序,如果有,那么就是匹配。假如我们有数据“abc”,匹配“abc”,那么,两个完全相对的字符串是匹配。数据“aaacbc”,匹配“abc”,也是匹配,因为数据按照“abc”的顺序,算法不管数据有多长,只要数据存在和匹配相同的顺序,那么就匹配。///

/////////数据///匹配publicstaticboolBdt(stringtext,stringstr){inti=0;boolreu=false;foreach(vartempinstr){reu=false;for(;i
.Net 2017-11-10 发布
AD 友情赞助
0 浏览

WPF 使用不安全代码快速从数组转 WriteableBitmap

本文告诉大家一个快速的方法,直接把数组转WriteableBitmap先来说下以前的方法,以前使用的是BitmapSource,这个方法是大法官方提供的。BitmapSource.Create(LogicalWidth,LogicalHeight,96,96,PixelFormats.Bgra32,null,dest,stride);其中dest是一个大数组,数据大小为,经常在转换的时候出现内存不足异常。假如现在内存占用是1.5G,转换的图片大小是2000*2000,于是几乎一跑就出现内存不足。为何还有500M内存却出现内存不足?因为图片转换需要的是一段大的连续内存空间。砸桌子,再说一次,图片转换需要一段【大的连续】内存空间,虽然有500M内存,但是连续的空间没有那么多。这就是以前方法的缺点。使用不安全代码转换是把数组直接复制到WriteableBitmap,请看使用不安全代码将Bitmap位图转为WPF的ImageSource以获得高性能和持续小的内存占用-walterlv

.Net 2017-11-10 发布
0 浏览

.NET Core跨平台的奥秘[下篇]:全新的布局

从本质上讲,按照CLI规范设计的.NET从其出生的那一刻就具有跨平台的基因,这与Java别无二致。由于采用了统一的中间语言,微软只需要针对不同的平台设计不同的虚拟机(运行时)就能弥合不同操作系统与处理器架构之间的差异,但是“理想很丰满,现实很骨感”。在过去十多年中,微软将.NET引入到了各个不同的应用领域,表面上看起来似乎欣欣向荣,但是由于采用完全独立的多目标框架的设计思路,导致针对多目标框架的代码平台只能通过PCL(参考《.NETCore跨平台的奥秘[中篇]:复用之殇》)这种“妥协”的方式来解决。如果依然按照这条道路走下去,.NET的触角延伸得越广,枷锁将越来越多,所以.NET已经到了不得不做出彻底改变的时刻了。一、跨平台的.NETCore综上所述,要真正实现.NET的跨平台伟业,主要需要解决两个问题,一是针对不同的平台设计相应的运行时为中间语言CIL提供一个一致性的执行环境,而是提供统一的BCL以彻底解决代码复用的难题。对于真正跨平台的.NETCore来说,微软不仅为它设计了针对不同平台被成为CoreCLR的运行时,同时还重

.Net 2017-11-10 发布
0 浏览

[ay的quartz.net 学习笔记[3/5]

Quartz.Net插件TriggerListener,JobListenerCron表达式Quartz.Net线程池ISchedulerPlugin接口publicclassMyPlugin:Quartz.Spi.ISchedulerPlugin{publicvoidInitialize(stringpluginName,ISchedulersched){Console.WriteLine("实例化");}publicvoidStart(){Console.WriteLine("启动");}publicvoidShutdown(){Console.WriteLine("关闭");}}主函数里面配置要实现的插件staticvoidMain(string[]args){varproperties=newNameValueCollection();//MyPlugin自定义名称。"命名空间.类名,程序名称"properties["quartz.plugin.MyPlugin.ty

.Net 2017-11-10 发布
AD 友情赞助
0 浏览

.net ef core 领域设计代码转换(上篇)

一、前言.netcore2.0正式版已经发布几个月了,经过研究,决定把项目转移过来,新手的话可以先看一些官方介绍传送门:https://docs.microsoft.com/zh-cn/dotnet/core/由于在领域设计模型上遇到了一些坑,故给大家分享出来自己的一些解决方案。ok,直接上干货,大概结构如下:比较教科书式的架构。二、领域层领域实体值对象规约接口工作单元接口仓储接口聚合跟划分,我们先建立一个简单的用户实体三、仓储层引用Microsoft.EntityFrameworkCore.Sqlite工作单元ISql接口工作单元IQueryableUnitOfWork接口接下来是重点了,构造函数的改变:OnModelCreating变化:以前的设置现在efcore里面没有提供这么方便的封装,需要自己去实现数据库表名更改:publicstaticvoidSetSimpleUnderscoreTableNameCo

.Net 2017-11-10 发布
0 浏览

高效实用的.NET开源项目分享

1、Akka.NET:概述:更轻松地构建强大的并发和分布式应用。简介:Akka.NET是一个用于在.NET和Mono上构建高度并发,分布式和容错的事件驱动应用程序的工具包和运行时。开源地址:https://github.com/akkadotnet/akka.net2、Topshelf:概述:使用.NET构建Windows服务的简单服务托管框架。简介:Topshelf是托管使用.NET框架编写的服务的框架。服务的创建被简化,允许开发人员创建一个简单的控制台应用程序,可以使用Topshelf作为服务安装。原因很简单:调试控制台应用程序比服务容易得多。一旦应用程序经过测试并可以进行生产,Topshelf可以轻松安装应用程序作为服务。开源地址:https://github.com/Topshelf/Topshelf3、IdentityServer3:概述:OpenIDConnectProvider和用于ASP.NET4.x/Katana的OAuth2.0授权服务器框架。简介:IdentityServer是一个基于

.Net 2017-11-10 发布
0 浏览

C#调用webservice接口的最新方法教程

前言WebService也叫XMLWebServiceWebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:(ExtensibleMarkupLanguage)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。Soap:(SimpleObjectAccessProtocol)简单对象存取协议。是XMLWebService的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。WSDL:(WebServicesDescriptionLanguage)WSDL文件是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。大多数情况下由软件

.Net 2017-11-10 发布
0 浏览

C#设计模式之十三代理模式(Proxy)【结构型】

一、引言今天我们要讲【结构型】设计模式的第七个模式,也是“结构型”设计模式中的最后一个模式,该模式是【代理模式】,英文名称是:ProxyPattern。还是老套路,先从名字上来看看。“代理”可以理解为“代替”,代替“主人”做一些事情,为什么需要“代理”,是因为某些原因(比如:安全方面的原因),不想让“主人”直接面对这些繁琐、复杂的问题,但是这些事情是经“主人”同意或者授意的,如同“主人”亲自完成的一样。这个模式很简单,生活中的例子也很多。举例说明,歌星、影星的经纪人就是现实生活中一个代理模式的很好例子,还有操作系统中的防火墙,也是代理的例子,要访问系统,先过防火墙这关,否则免谈。还有很多了,就不一一列举了,大家在生活中慢慢的体会吧。二、代理模式的详细介绍2.1、动机(Motivate)在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是

.Net 2017-11-10 发布
0 浏览

关于一个系统软件置顶的问题

一个新的项目需要用到系统置顶的功能,本来是件很简单的事情,但是越做发现并不那么简单,所以记录下来:系统环境:win7旗舰版本64位;IDE:VS2013;WPF+C#开发。一、开始用Topmost属性设置为true。运行木有问题,很简单哟。呵呵,随后运行打开osk.exe;卵,被按下去了。查资料,人家也用了置顶的功能,两个都在置顶,而且一旦被人家(osk.exe)按下去就再也上不来。二、那就用笨点的办法呗,循环设置Topmost=true;while(true){try{Thread.Sleep(2);lock(_thisLock){this.Dispatcher.Invoke(newAction(()=>{this.Topmost=false;}),null);}}catch(Exceptionex){MessageBox.Show(ex.Message);}}嘿嘿,搞定。然后在win7的系统上实现各种功能。终于算是开

.Net 2017-11-10 发布
0 浏览

c# 自定义Base16加密

一、自定义Base16编码原理Base16编码跟Base64编码原理上有点不同,当然前面转换是一样的,都是是将输入的字符串根据默认编码转换成一个字节序列,而这个字节序列里面其实就是存的ASCII码,其次,将每个ASCII码转换成8位二进制,每个八位二进制拆分成4位一组的二进制,然后将每4位一组的二进制转换成十进制,最后,根据十进制的数字索引密文下标的字符,将这些字符串联起来就是编码的字符串。例子:abcASCII码:979899二进制:011000010110001001100011拆分成四位一组:011000010110001001100011十进制:616263根据十进制索引密文下标中的字符,下面是编

.Net 2017-11-10 发布
0 浏览

[ay的quartz.net 学习笔记[4/5]

在实际使用quartz.net中,持久化能保证实例重启后job不丢失、集群能均衡服务器压力和解决单点问题。quartz.net在这两方面配置都比较简单quartz.net的持久化,是把job、trigger一些信息存储到数据库里面,以解决内存存储重启丢失这里用了别人的一个开源项目,搭建起来吧,代码值得研究看看。地址:https://github.com/quartznet/quartznet创建库USE[master]GO/******对象:Database[AyQZ]脚本日期:******/CREATEDATABASE[AyQZ]ONPRIMARY(NAME=N'QP_AyQZ',FILENAME=N'D:\AyQZ.mdf',SIZE=8192KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)LOGON(NAME=N'QP_AyQZ_log',FILENAME=N'D:\AyQZ_log.ldf',

.Net 2017-11-10 发布
0 浏览

C#基本功之委托和事件

定义:委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联目的:方法声明和方法实现的分离,使得程序更容易扩展一、对委托的理解1.为什么将方法作为另一个方法的参数先不解释定义,看一段代码publicvoidMethod1(objectobj){//内部可以访问obj的成员}这是随便写的一个方法,没有实际意义,但是,根据我们已掌握的关于类型的基础知识,应该明白,这里的obj(引用类型)作为形参,存放的是对象的引用,既然获取到了对象的引用,那么我们可以在run方法内部对obj的成员进行访问(一段废话)。好了,现在我要问一个问题:为什么要将obj作为参数?问题先慢慢想着,我们再次看一下委托的定义,"是引用类型,对方法的引用",看下面的代码publicvoidMethod2(delegatedel){//内部可以访问del的什么?//只能执行方法del();}delegate作为一种引用类型,引用的是个方法,我们能对方法做什么,

.Net 2017-11-10 发布
AD 友情赞助