
小技巧
文章平均质量分 56
烈火蜓蜻
山一程,水一程,身向榆关那畔行,夜深千帐灯。
风一更,雪一更,聒碎乡心梦不成,故园无此声。
展开
-
群晖NAS遇到断电如何自动关机
我这里用的是sa账户登陆的,把脚本文件也放到了sa根目录下。需要一台UPS(品牌功能不限,只需续航5分钟以上就可以)检测群晖NAS的网卡状态,我的NAS有四个千兆口,查询。up在线,down离线,这样就很容易判断了。这里有eth0~eth3四个网卡。原创 2023-06-16 22:53:23 · 5367 阅读 · 5 评论 -
第十章 实现可靠的会话
【前言】许多时候,创建WCF客户端应用程序和服务时,它们被部署在不同的计算机上,并通过网络通信。在网络中会遇到很多问题,如果不考虑安全问题,那么网络的主要问题是网络的不可靠性。有线网络和无线网络传输的信息都非常容易被拦截、干扰、甚至发生用户掉线的情况。很显然,这些都是不可接受的。如果WCF服务运行在PerSession服务实例模式下,那么客户端和WCF服务之间的会话将包含多条消息。转载 2012-06-14 16:52:12 · 2038 阅读 · 0 评论 -
第十一章 编写代码控制配置和通信 (上)
前言到目前为止,你已经很好地理解如何创建WCF客户端程序和服务,以及如何配置它们使两者之间可以相互通信。WCF一个非常引人注目的特点是可以通过配置文件配置服务和客户端。在配置文件的背后,WCF运行时使用配置信息创建发送和接收消息的架构,该架构使用配置文件中指定的协议,这些协议以某种方式编码并传送消息至服务操作对应的方法中。在实际工作中,你不可避免地会遇到通过代码来完成配置任务,这可能是由于转载 2012-06-14 16:58:00 · 1064 阅读 · 0 评论 -
第十三章以更好的性能实现WCF服务(下)
启用MTOM传输数据MTOM 是一种机制,用来以原始字节形式传输包含 SOAP 消息的较大二进制附件,从而使所传输的消息较小。一条SOAP消息经常由消息头和消息体构成;消息头提供地址,路由信息和安全信息;消息体提供数据,以及消息的负载。消息体由XML构成,包含在传输至服务的请求或者返回客户端程序的响应信息中。消息体信息的真正结构是由WSDL对操作的描述而指定,这些操作由你在服务中指定的操作转载 2012-06-16 19:27:59 · 4467 阅读 · 0 评论 -
第七章 维持会话状态和设置服务操作的顺序
在之前章节所完成的练习中,客户端调用WCF服务的一系列操作,但是这些操作的顺序并不重要;因此先调用一个操作然后再调用另外一个操作,均不会对彼此产生影响,因为这些操作是相互独立地。但在实际应用中,服务的操作可能需按照一定的顺序调用。比如,如果你在服务中实现了购物车功能,那么在没有将任何商品放进购物车之前,就执行结算和支付操作显然是没有意义的。按照一定的顺序调用操作会使你考虑在如何两次操作之间转载 2012-06-14 16:48:56 · 1888 阅读 · 0 评论 -
第十五章 构建REST服务(第三部分)
使用WCF数据服务到目前为止,本章中为你展示的例子都属于比较常见的情形。它们演示了如何使用WCF构建REST Web服务,这些服务使用WebGet和WebInvoke特性类手动定义一个对外公布数据的体系。如果你构建REST Web服务时采用ADO.NET实体框架读取数据,那么你可以使用WCF数据服务自动地完成大部分任务。使用由Visual Studio 2010提供的WCF Data服务模转载 2012-06-16 19:32:17 · 1314 阅读 · 0 评论 -
第十二章 实现单向操作和异步操作(中)
单向操作特别适用于"触发然后忘记"场景,在该场景中,客户端程序并不期望服务回传任何信息。但是,许多操作并不适用于这种情况,其向客户端程序返回数据。为了处理这些情况,WCF支持异步操作和IAsyncResult设计模式。在WCF中你可以使用两种方式实现IAsyncResult设计模式:在客户端 程序中异步调用操作;或在WCF服务中实现异步操作。IAsyncResult 设计模式并不是为WCF转载 2012-06-16 19:24:48 · 903 阅读 · 0 评论 -
第十二章 实现单向操作和异步操作(下)
使用消息队列消息队列是本书WCF异步技术中的最后一个出场的。消息队列可以为消息传输提供持久性、可靠性和事务性。甚至,发送消息的客户端程序与接受消息的服务可以不必同时运行。但使用该灵活性需要付出一定的代价,那就是消息队列只能支持单向传输。因此如果使用该技术实现客户端程序和服务并且服务需要向客户端发送响应消息时,需要仔细的设计。另外,消息队列比其他传输协议更慢,这是因为它所支持的可靠性和可持续转载 2012-06-16 19:25:15 · 984 阅读 · 0 评论 -
第十三章以更好的性能实现WCF服务(上)
前言良好的性能是大多数应用程序和服务的关键因素,你可以通过周密地设计,以及选择合适的特性以确保WCF服务维持其吞吐量,保持响应并具有可扩展性。到目前为止,这些技术包括事务(上,下),session状态,可靠地消息传递,以及异步操作(上,中,下)。还有其他一些影响性能的方面,比如安全(企业内部WCF的安全,因特网环境下WCF的安全)。如同我们在前面章节中讨论的那样,实现消息级别的安全转载 2012-06-16 19:27:11 · 8441 阅读 · 0 评论 -
第九章 事务支持(下)
【正文】设计支持事务的WCF服务本章前面小节的内容为你展示了在WCF服务中如何实现事务,但是在设计支持事务的WCF服务时,仍然有许多问题值得你关注。事务、会话和服务实例模式如果你在WCF服务中在一个或多个操作上设置OperationBehavior特性类的TransactionAutoComplete属性值为false,那么你必须设置服务实例模式为PerSessio转载 2012-06-14 16:51:40 · 1504 阅读 · 0 评论 -
第九章 事务支持(上)
【前言】大部分程序通常需要确保其操作数据的一致性。通过事务可以帮助达到该一致性。一个事务指一个组工作或一系列操作的原子性,原子性意味着要么全部成功地执行,要么当某个异常发生时全部均不执行。事务的典型例子是在两个银行账户之间转账,即从一个账户上扣除一定数量的金钱并将同样数量的金钱添加至另外一个账户。如果添加操作失败,那么扣除操作也必须复原,否则原账户的金钱丢失。相应地,如果扣除操作失败,添加转载 2012-06-14 16:51:09 · 1173 阅读 · 0 评论 -
第八章 使用工作流实现服务
【前言】企业使用WCF服务的一个主要原因是通过包装现有的组件和程序构建面向服务的应用,这些应用通过不仅简单而且适应力很强地方式重用。这种策略为企业带来了非常大的灵活性,因为它可以简单地响应快速变化的业务需求、并迅速地创建或更改系统以适应这些需求。 许多企业采用的业务过程都由一系列明确的、并按照特定顺序执行的步骤组成。其中一些步骤可能涉及调用服务的操作,这需要确保WCF服务的操作顺序应当翻译 2012-06-14 16:50:07 · 5994 阅读 · 6 评论 -
第十一章 编写代码控制配置和通信(中)
摘要WCF服务的分发器可以在把消息传递至服务实例的方法之前或在接收到服务的响应消息之后,翻译并检查这些消息。如果你需要实现消息检查功能,那么你首先需要自定义检查消息的服务行为,然后通过硬编码将服务行为嵌入到代码中或扩展WCF服务行为并通过配置文件配置消息检查功能。检查消息WCF服务模型的一个有趣的特性是分发消息至服务的方法之前翻译消息,在离开服务方法后进入向客户端回传的传从转载 2012-06-14 16:59:18 · 1021 阅读 · 0 评论 -
第十一章 编写代码控制配置和通信(中)
摘要WCF服务的分发器可以在把消息传递至服务实例的方法之前或在接收到服务的响应消息之后,翻译并检查这些消息。如果你需要实现消息检查功能,那么你首先需要自定义检查消息的服务行为,然后通过硬编码将服务行为嵌入到代码中或扩展WCF服务行为并通过配置文件配置消息检查功能。检查消息WCF服务模型的一个有趣的特性是分发消息至服务的方法之前翻译消息,在离开服务方法后进入向客户端回传的传从转载 2012-06-14 16:59:34 · 644 阅读 · 0 评论 -
第十一章 编写代码控制配置和通信(下)
前言WCF客户端通过代理对象可连接至服务。如果服务管理员禁用了服务元数据公布或者出于性能原因,那么在客户端可以通过代码创建ChannelFactory对象连接至服务并与服务通讯;甚至还可以通过扩展ClientBase抽样类与服务交互。使用上述两种方式时有一个前提那就是服务开发人员可以提供包含服务合约的组件。如果该前提也不存在,只要你拥有描述服务接受的SOAP消息和服务发送的响应消息的文档时转载 2012-06-14 17:01:42 · 952 阅读 · 0 评论 -
UTF-8签名(BOM)问题
问题一,在WINDOWS CYGWIN下可以编译的C++代码文件,到了LINUX环境下使用GCC报存在游离的字符,导致编译失败。 (gcc编译报错:程序中有游离的‘\357’‘\273’‘\277’等 ,其原因有可能是 1,误用了全角的符号和空格等, 2,BOM字符。) 问题二,在WINDOWS下正常解析的XML文原创 2012-06-14 16:10:39 · 4687 阅读 · 0 评论 -
第一章 WCF简介
1. 什么是WCF如果你阅读本书的目的是为了解如何使用WCF构建分布式应用程序和服务,那么什么是WCF,为什么使用WCF?该如何使用WCF? 回答这些问题,让我们来回顾一下历史。(1)早期个人电脑时代的应用程序 个人电脑时代,业务解决方案由一套应用程序组合而成。一般会包含文字处理程序,电子表格处理程序,和数据库套件。有经验用户能够把业务数据存贮在数据库中,然后使用电子表格分转载 2012-06-14 16:26:31 · 1353 阅读 · 0 评论 -
第六章 维护服务协定和数据协定
【摘要】在第一章WCF简介中,你已经了解SOA的基本原则--服务之间共享数据架构和协定,而并非类或者类型。当你定义服务时,你通过定义服务协定以指定操作。服务协定描述该服务的操作、操作所使用的参数类型及其操作返回值的类型。WCF服务对外公布服务协定的定义,服务开发人员使用这些定义去构建相应的客户端。开发人员可以通过Visual Sutdio自带的添加服务向导或者svcutil实用工具为根据服转载 2012-06-14 16:43:16 · 1174 阅读 · 0 评论 -
第四章 保护企业内部的WCF服务
【摘要】安全是任何系统至关重要的一个方面,尤其当该系统由分布式的程序和服务组成;安全还是一个非常广泛的话题。因为这些原因,你应该考虑如何在不同的场景下实现系统的安全。这些关于安全的内容将通过三章内容进行一一介绍。在本章,我们把注意力集中在企业内部WCF服务的安全管理方面。在此场景中,运行WCF服务的服务端和客户端之间已经存在必要的信任关系;通过客户端访问该服务的用户都来自同一个安全域。WC转载 2012-06-14 16:35:53 · 1346 阅读 · 0 评论 -
第五章 在因特网环境下保护WCF服务
【摘要】实现企业内部的WCF服务和客户端程序的安全需要相当的力气,但是WCF提供了绑定和行为来简化保护通信。使用.NET Framework4.0提供的认证和授权,可以确保服务和客户端消息传输的保密性,而且还确保只有经过授权的用户才能对服务提交请求。企业内部的网络环境由于内在的保密性,对比因特网其相对比较稳定;虽然也有黑客入侵,但这也只是偶尔的现象。只要系统管理员和网络管理员维护好企业转载 2012-06-14 16:45:52 · 1513 阅读 · 0 评论 -
第十四章 检测服务和路由消息(第一部分)
前言如果客户端程序向WCF服务发送一条请求消息,那么客户端通过端点发送该请求。如果你回想一下,端点由三部分组成:地址,绑定和合约。地址指明消息发送的目的地;绑定指明传输、格式、以及于与服务进行通讯所使用的协议;合约决定客户端可以发现的消息以及客户端期望的响应消息。多个服务可以实现同一个服务合约,或一个服务也有可能更改地址。如果客户端将服务特定的地址硬编码在客户端的配置文件中,那么如果服务发转载 2012-06-16 19:28:41 · 1486 阅读 · 0 评论 -
第十四章 检测服务和路由消息(第三部分)
实现路由路由适用于处理与监测服务稍微不同的场景。有时候需要从一个服务推送消息至另一个完全不同的服务以处理该消息。比如,当客户端程序发送请求至企业内部不同的WCF服务,但是所有这些请求实际上都首先通过前端的服务,该服务相当于WCF服务的防火墙。前端服务可以运行在企业外围网络的计算机上,而实际上处理请求的WCF服务可以寄宿在位于企业内部受保护的网络中。前端服务可以实现一个路由机制,通过转载 2012-06-16 19:29:47 · 1489 阅读 · 0 评论 -
VS2010 几个不常用,却很有用的快捷键
1,Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件在Visual Studio 2008的安装目录下,/Microsoft Visual Studio 9.0/Common7/VS2008ImageLibrary/2052文件夹下面,有一个VS2008ImageLibrary.zip,这个文件里面将常用的Windows系统图标、光转载 2012-06-04 16:17:11 · 5938 阅读 · 0 评论 -
C#开发系统服务时用的定时器组件
主要代码:1. ITask.cs2. TaskSchedule.cs3. TimeCalculations.cs4. TimerStrategyConfig.cs5. TimerStrategyManager.cs1. 所有用户代码都继承该类ITask . using BlueVision.ShianYuan.Framework;using System;原创 2013-07-11 16:08:16 · 4304 阅读 · 3 评论 -
解决应用MSBuild编译项目没有拷贝间接引用的dll题目
场景:有工程A,B,C工程原创 2014-08-13 17:11:45 · 3330 阅读 · 0 评论 -
比较运算符
比较运算符,如同它们名称所暗示的,允许对两个值进行比较。还可以参考 PHP 类型比较表看不同类型相互比较的例子。比较运算符例子名称结果$a == $b等于TRUE,如果类型转换后 $a 等于 $b。$a === $b全等TRUE,如果 $a 等于 $b,并且它们的类型也相同。$a != $b不等TR转载 2015-08-24 20:13:11 · 1287 阅读 · 0 评论 -
angulasJS 指令范例
HTML5代码<html ng-app="expanderModule"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script src="http://lib.sinaapp.com/js/angular.js/angular-1.2.19/a原创 2016-08-13 21:32:35 · 629 阅读 · 0 评论 -
SSH登陆失败可能原因,备忘
情况一命令如下:root@linux:~# ssh -i ~/.ssh/id_rsa root@10.0.0.111@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE! @@@@@@@@@@@@@@@@@@@@@@@原创 2016-11-16 17:29:22 · 3938 阅读 · 0 评论 -
桥接模式虚拟机无法联网的问题
桥接模式虚拟机无法联网的问题重新生成MAC地址然后,删除Linux内的所有网卡。然后重新启动系统就可以了。原创 2016-11-19 00:25:31 · 1100 阅读 · 0 评论 -
adb 命令使用之抓取log并过滤。
基本介绍adb logcat 命令使用帮助说明;logcat: option requires an argument -- vUnrecognized OptionUsage: logcat [options] [filterspecs]options include: -s Set default filter to silent.转载 2016-12-02 21:18:19 · 5861 阅读 · 0 评论 -
C#开发系统服务时用的定时器组件(修正版)
// 相较上一版本改进// 1. 修改Bug// 当设置每月一次频率时,设置的Day日期如果为31,30,29,在有些年份的有些月份会抛出异常,因为有些月份是没有31天的,改正之后,// 如果设置了31天,则只有有31天的月份会执行。// 2. 修正一年中某天的日期较验功能。// 3. 新增加循环模式// 每个月最后一天执行一次。// 4. 支持到秒的定时using Syst原创 2012-03-22 09:42:53 · 3599 阅读 · 10 评论 -
第十四章 检测服务和路由消息(第四部分)
使用路由服务类实现手动路由无疑是非常强大的技术,但是常见的场景下你所希望的仅仅是,基于请求的某些特性而不是编写一些动态的算法以实现路由消息。为了处理这样的场景,WCF提供了RoutingService类,该类位于System.ServiceModel.Route命名空间下。给命名空间下的类图如下图所示:RoutingService类的目的在于:当消息达到时,基于内容实现路由转载 2012-06-16 19:30:32 · 1208 阅读 · 0 评论 -
第十五章 构建REST服务(第二部分)
通过REST Web服务更新数据REST Web服务提供了查询数据的操作以响应HTTP GET请求。但是,HTTP协议支持其他形式的请求,你可以利用这些消息类型提供操作以修改REST Web服务中的数据。最常见的情形是你使用HTTP POST请求创建新项目的操作,HTTP PUT请求更新现存数据的操作,使用HTTP DELETE请求定义删除项目的操作。注意,上述常规并不是强制的,你转载 2012-06-16 19:31:47 · 1987 阅读 · 0 评论 -
WCF开发之异常与错误处理
对于WCF中的异常与错误处理我们必须先了解一个概念SOAP Faults,它实际上就是在服务端和客户端之间来传递错误信息的一种载体。• 公共语言运行时(CLR)异常无法跨越服务边界– 未捕捉异常最多到达服务通道(service channel)– 在报告给客户端之前必须要进行序列化• 所有的异常都被序列化为SOAP faults– 基于标准的,可互操作的– 给予SOAP转载 2012-06-16 20:09:00 · 7271 阅读 · 1 评论 -
第十二章 实现单向操作和异步操作(上)
当客户端程序调用一个单向操作后,客户端可以继续运行而不用等待服务完成该操作。你可以通过操作合约指定单向操作行为。达到该目的的最简单方式是在当以操作时设置Operation-Contract特性类的IsOneWay属性为true。在本章的练习中你将会看到具体的例子。单向操作的效果定义一个操作为单向操作包含多个暗示,其中最重要的暗示为具有单向操作特性的操作不能回传任何数据至客户端程序,转载 2012-06-16 19:22:45 · 1771 阅读 · 0 评论 -
第十五章 构建REST服务(第一部分)
通常企业使用两种架构实现Web服务:基于SOAP的服务和基于REST模型的服务。这两个架构依赖HTTP协议和因特网实现的寻址体系,但采取不同的方式使用它们。到目前为止,本书所有的练习都集中在SOAP模型上,这种架构使得Web服务的设计者关注服务的业务过程,并把这些业务过程对外公开为服务的操作。相比之下,REST模型则关注企业对外公布的数据,并实现一个允许客户端程序使用自身的逻辑访问并操作这些数据的转载 2012-06-16 19:31:09 · 1432 阅读 · 0 评论 -
第十六章 使用回调合约发布和订阅事件
到目前为止,本书中你看到的练习与例子都集中于C/S模型。在该模型中,一个服务器提供一个服务,该服务等待客户端主动发出的请求,接收到客户端的请求后,处理请求,然后选择性地向客户端程序发送响应。客户端程序是活动的参与者,提交请求并有效地决定了服务何时开始执行工作。然而这只是大多数的情况,WCF还支持其他的处理体系,比如点对点网络和客户端回调。在点对点场景中,没有被动的服务。所有参与者都是自主的转载 2012-06-16 19:33:24 · 2292 阅读 · 0 评论 -
WCF开发之异常与错误处理
对于WCF中的异常与错误处理我们必须先了解一个概念SOAP Faults,它实际上就是在服务端和客户端之间来传递错误信息的一种载体。• 公共语言运行时(CLR)异常无法跨越服务边界– 未捕捉异常最多到达服务通道(service channel)– 在报告给客户端之前必须要进行序列化• 所有的异常都被序列化为SOAP faults– 基于标准的,可互操作的– 给予SOAP转载 2012-06-19 16:07:25 · 1357 阅读 · 0 评论 -
C#取真实IP地址及分析
说一哈,我也是转来的,不是想骗PV,方便自己查而已! 目前网上流行的所谓"取真实IP地址"的方法,都有bug,没有考虑到多层透明代理的情况。 多数代码类似: string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null&& HttpContext转载 2012-08-20 14:59:40 · 3916 阅读 · 2 评论 -
第十四章 检测服务和路由消息(第二部分)
使用发现代理使用服务声明可以减少由Probe消息和ProbeMatch消息带来的网络流量,但是如果服务启动时客户端程序没有运行那么会发生什么?答案是客户端将失去通知消息因此不能发现服务,因为客户端不能连接到服务。解决方法是使用一个发现消息和声明的结合体;创建一个中间服务,该服务使用一个已知的地址侦听来自服务的声明消息并缓存这些声明消息。在客户端程序中,发送Probe消息至中间服务。中间服务转载 2012-06-16 19:29:13 · 1900 阅读 · 0 评论