一、 netTCPBinding . 1
3 、 安全模式 – Message . 1
3.1. 客户端验证 – None . 2
3.1.1. 获得和安装证书 ... 2
3.1.2. 服务端代码 ... 2
3.1.3. 客户端代码 ... 3
3.1.4. 测试 ... 3
3.2. 客户端验证 – Windows . 3
3.2.1. 获得和安装证书 ... 4
3.2.2. 服务端代码 ... 4
3.2.3. 客户端代码 ... 4
3.2.4. 测试 ... 5
3.3. 客户端验证 – UserName . 5
3.3.1. 获得和安装证书 ... 5
3.3.2. 服务端代码 ... 6
3.3.3. 客户端代码 ... 8
3.3.4. 测试 ... 9
3.3.5. 身份模拟和访问权限控制 ... 9
3.4. 客户端验证: Certificate . 10
3.4.1. 获得和安装证书 ... 10
3.4.2. 服务端代码 ... 11
3.4.3. 客户端代码 ... 11
3.4.4. 测试 ... 12
3.4.5. 证书映射到 windows 用户 ... 12
一、 netTCPBinding
此绑定使用 TCP 传输协议,不具交互性,只适用于 WCF 到 WCF 的通信。
此绑定的传输安全性的实现:
l 安全模式 Message
这种模式 WCF 中都一样,都是使用 WS-* 通过对 SOAP 消息本身进行加密、签名等等的处理来保证安全性。 Message 模式不依赖于传输协议。服务端需要指定服务端证书,用来加密服务端和客户端相互传送的消息。
l Transport – 客户端 windows 验证
使用 windows security 保证消息的安全,使用 windows credential 进行身份验证。
这种方式不需要服务端证书。
至于 windows security 的实现安全的原理我还不明白,这部分尚待了解。
l Transport – 客户端其他验证方式
使用 TLS over TCP 实现传输安全性,需要服务端证书。
一般大家对 SSL 比较熟悉,对 TLS 可能要陌生些,其实可以说 TLS 协议可以看作跟 SSL 协议后续版本。 1994 年, netscape 为了在 internet 上进行安全的数据传输,开发了的 SSL 协议,后来标准化组织把 SSL 标准化了,稍作修改改名叫 TLS ,在一般的使用意义上,这两个协议差别不大,就是在保证消息完整性的散列算法上使用了不同的算法。
TLS over TCP 直接建立在 TCP 协议上,通过传输层 TCP 协议实现安全性。
netTCPBinding 绑定是直接使用 TCP 协议,不走 HTTP ,所以不能使用 IIS 宿主。这部分的测试实例采用自宿主的服务端 console 应用,基于代码的方式。
3、 安全模式 – Message
这部分测试 netTCPBinding 绑定的 Message 安全模式的各种情况。
共用测试 WCF 服务类
所有测试都是用同样的服务端 contract 和实现这个 contract 的 service :
[ServiceContract (Namespace = "http://chnking.com" )]
public interface IGetIdentity
{
[OperationContract ]
string Get(string ClientIdentity);
}
public class GetIdentity : IGetIdentity
{
public string Get(string ClientIdentity)
{
return (" 服务端Identity 是'" + ServiceSecurityContext .Current. PrimaryIdentity.Name +
"'/n/r 客户端Identity 是 '" + ClientIdentity + "'" );
}
}
代码很简单,一个 contract 提供了一个 Get 方法,接收一个 string 参数,返回一个 string 参数。在后面的测试中,客户端把客户端安全上下文的 Identity 发送到服务端,服务端返回服务端安全上下文的 Identity 给客户端。
3.1. 客户端验证 – None
这部分的测试代码: NetTcpBinding_Message_None.rar
netTCPBinding 绑定的 Message 安全模式,客户端 None 验证。此时将使用服务端证书,通过 WS-Trust 协议建立的安全通道,原理上类似 SSL 或 TLS 的机制(但不是通过网络传输层来实现,而是通过处理 SOAP 中的消息)来保证消息的安全性。
这种方式的安全性:
完整性
使用服务端证书,通过 WS-Trust 协议建立的安全通道
保密性
使用服务端证书,通过 WS-Trust 协议建立的安全通道
服务端身份身份验证
服务端证书提供
客户端身份验证
没有
3.1.1. 获得和安装证书
这里用 Makecert.exe 工具生成证书,使用下面的命令:
makecert -sr localmachine -ss My -n CN=win2008 -sky exchange -pe -r
这是服务端证书, win2008 是服务端的机器名。
如果做过前面 BasicHttpBinding 的测试,这个服务端证书就应该已经有了。
3.1.2. 服务端代码
internal static ServiceHost myServiceHost = null ;
internal static void Main()
{
NetTcpBinding myBinding = new NetTcpBinding ();
myBinding.Security.Mode = SecurityMode .Message;
myBinding.Security.Message.ClientCredentialType = MessageCredentialType .None;
Uri baseAddress = new Uri ("net.tcp://localhost:8056/WCFService/" );
myServiceHost = new ServiceHost (typeof (GetIdentity ), baseAddress);
ServiceEndpoint myServiceEndpoint = myServiceHost.AddServiceEndpoint
(typeof (IGetIdentity ), myBinding, "GetIdentity" );
// 设置服务端证书
myServiceHost.Credentials.ServiceCertificate.SetCertificate("CN=win2008" );
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior ();
behavior.HttpGetEnabled = true ;
behavior.HttpGetUrl = new Uri ("http://localhost:8057/mex" );
myServiceHost.Description.Behaviors.Add(behavior);
myServiceHost.Open();
Console .WriteLine("Service started!" );
Console .ReadLine();
myServiceHost.Close();
}
3.1.3. 客户端代码
static void Main(string [] args)
{
NetTcpBinding myBinding = new NetTcpBinding ();
myBinding.Security.Mode = SecurityMode .Message;
myBinding.Security.Message.ClientCredentialType = MessageCredentialType .None;
EndpointAddress ea = new EndpointAddress ("net.tcp://win2008:8056/WCFService/GetIdentity" );
GetIdentityClient gc = new GetIdentityClient (myBinding, ea);
// 不验证服务端证书的有效性
gc.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode =
System.ServiceModel.Security.X509CertificateValidationMode .None;
// 为使用TcpTrace 跟踪消息设置的TcpTrace 监听端口
ClientViaBehavior myClientViaBehavior = new ClientViaBehavior
(new Uri ("net.tcp://win2008:8055/WCFService/GetIdentity" ));
gc.Endpoint.Behaviors.Add(myClientViaBehavior);
// 执行代理类Get 方法
string result = gc.Get(WindowsIdentity .GetCurrent().Name);
Console .WriteLine(result);
Console .ReadLine();
}
3.1.4. 测试
3.2. 客户端验证 – Windows
这部分的测试代码: NetTcpBinding_Message_Windows.rar
netTCPBinding 绑定的 Message 安全模式,客户端 Windows 验证。此时将使用服务端证书,通过 WS-Trust 协议建立的安全通道,原理上类似 SSL 或 TLS 的机制(但不是通过网络传输层来实现,而是通过处理 SOAP 中的消息)来保证消息的安全性。
这种方式的安全性:
完整性
使用服务端证书,通过 WS-Trust 协议建立的安全通道
保密性
使用服务端证书,通过 WS-Trust 协议建立的安全通道
服务端身份身份验证
服务端证书提供
客户端身份验证
Windows 身份验证
3.2.1. 获得和安装证书
这里用 Makecert.exe 工具生成证书,使用下面的命令:
makecert -sr localmachine -ss My -n CN=win2008 -sky exchange -pe -r
这是服务端证书, win2008 是服务端的机器名。
如果做过前面 BasicHttpBinding 的测试,这个服务端证书就应该已经有了。
3.2.2. 服务端代码
internal static ServiceHost myServiceHost = null ;
internal static void Main()
{
NetTcpBinding myBinding = new NetTcpBinding ();
myBinding.Security.Mode = SecurityMode .Message;
myBinding.Security.Message.ClientCredentialType = MessageCredentialType .Windows;
Uri baseAddress = new Uri ("net.tcp://localhost:8056/WCFService/" );
myServiceHost = new ServiceHost (typeof (GetIdentity ), baseAddress);
ServiceEndpoint myServiceEndpoint = myServiceHost.AddServiceEndpoint
(typeof (IGetIdentity ), myBinding, "GetIdentity" );
// 设置服务端证书
myServiceHost.Credentials.ServiceCertificate.SetCertificate("CN=win2008" );
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior ();
behavior.HttpGetEnabled = true ;
behavior.HttpGetUrl = new Uri ("http://localhost:8057/mex" );
myServiceHost.Description.Behaviors.Add(behavior);
myServiceHost.Open();
Console .WriteLine("Service started!" );
Console .ReadLine();
myServiceHost.Close();
}
3.2.3. 客户端代码
static void Main(string [] args)
{
NetTcpBinding myBinding = new NetTcpBinding ();
myBinding.Security.Mode = SecurityMode .Message;
myBinding.Security.Message.ClientCredentialType = MessageCredentialType .Windows;
EndpointAddress ea = new EndpointAddress ("net.tcp://win2008:8056/WCFService/GetIdentity" );
GetIdentityClient gc = new GetIdentityClient (myBinding, ea);
// 不验证服务端证书的有效性
gc.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode =
System.ServiceModel.Security.X509CertificateValidationMode .None;
// 为使用TcpTrace 跟踪消息设置的TcpTrace 监听端口
ClientViaBehavior myClientViaBehavior = new ClientViaBehavior
(new Uri ("net.tcp://win2008:8055/WCFService/GetIdentity" ));
gc.Endpoint.Behaviors.Add(myClientViaBehavior);
// 执行代理类Get 方法
string result = gc.Get(WindowsIdentity .GetCurrent().Name);
Console .WriteLine(result);
Console .ReadLine();
}
3.2.4. 测试
可以看出,客户端 windows 身份被传送到服务端。
3.3. 客户端验证 – UserName
这部分的测试代码: NetTcpBinding_Message_UserName.rar
netTCPBinding 绑定的 Message 安全模式,客户端使用 UserName 验证。此时将使用服务端证书,通过 WS-Trust 协议建立的安全通道,原理上类似 SSL 或 TLS 的机制(但不是通过网络传输层来实现,而是通过处理 SOAP 中的消息)来保证消息的安全性。
这种方式的安全性:
完整性
你可能感兴趣的:(WCF)
WebService SendTimeout 超时问题
SKY徐
webservice binding behavior security wcf .net
System.TimeoutException:请求通道在等待00:01:00以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的SendTimeout值。分配给此操作的时间可能是更长超时的一部分。WCF中解决方案:1)首先保证客户端每次建立的连接在使用完成后进行关闭.即调用Close()方法,否则此连接会在设置的会话(一般为10分钟)后才自动关闭.期间任何客户端也无法使用此服务.2)如果
resttemplate默认超时时间_使用微软数据通信框架WCF:客户端调用服务超时分析
weixin_39665302
服务端设置超时时间
首先给出对调用超时的分析和解决办法,然后在给出完整和应用代码。1客户端调用超时运行客户端,执行调用ServiceProxyproxy=newServiceProxy();strings=proxy.GetData(1);通过配置sendTimeout参数设定超时时间,超时时间默认为1分钟,上述配置中采用了默认超时时间。InnerExceptionMessage请求通道在等待00:00:59.946
WebService SendTimeout 超时
weixin_30827565
System.TimeoutException:请求通道在等待00:01:00以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的SendTimeout值。分配给此操作的时间可能是更长超时的一部分。WCF中解决方案:1)首先保证客户端每次建立的连接在使用完成后进行关闭.即调用Close()方法,否则此连接会在设置的会话(一般为10分钟)后才自动关闭.期间任何客户端也无法使用此服务.2)如果
【WCF】通过AOP实现基于JWT的授权与鉴权的实践
ArabySide
# WCF jwt wcf aop c#
系列文章目录链接:【WCF】基于WCF在WinForms搭建RESTful服务指南链接:【WCF】单例模式的线程安全缓存管理器实现,给你的WebApi加入缓存吧链接:【WCF】基于固定时间窗口的接口限流实现(借助IOperationInvoker的AOP方案)链接:【WCF】通过AOP实现基于JWT的授权与鉴权的实践文章目录系列文章目录写在前面一、JWT(JSONWebToken)1.1什么是JW
谈谈分布式事务之四: 两种事务处理协议OleTx与WS-AT
weixin_34417814
在年前写一个几篇关于分布式事务的文章,实际上这些都是为了系统介绍WCF事务处理体系而提供的相关的背景和基础知识。今天发最后一篇,介绍分布式事务采用的两种协议,即OleTx和WS-AT,内容比较枯燥,但对于后续对WCF事务处理框架进行深入剖析的系列文章来说,确是不可以缺少的。总的来说,基于WCF的分布式事务采用的是两阶段提交(2PC:TwoPhaseCommit)协议。具体来说,我们可以选择如下两种
使命必达: 深入剖析WCF的可靠会话[协议篇](下)
在《上篇》中,我们认识了从序列创建到终止过程中消息交换的大致流程。接下来,我们进一步将关注点聚焦到单个小消息上,看看在整个基于序列的上下文中,不同类型的消息具有怎样的结构。首先从序列的创建开始。一、CreateSequence和CreateSequenceReponse基于WS-RM的可靠消息传输从序列的创建开始。为了创建序列,RM源(RMSource)向RM目的地(RMDestination)发
windows下Anaconda错误unacceptable character #x0000导致无法打开
Alla T
windows python 开发语言 数据分析 人工智能
错误详情在错误产生前,本人没有对anaconda做出多余改动,所以也不清楚错误原因…就很突然,啪的一下很快啊,conda图标打不开了、闪退了,然后返回了错误页面信息。MainError:unacceptablecharacter#x0000:specialcharactersarenotallowedin“C:\Users\wcf.continuum\anaconda-client\config.
Mybatis 逆向工程创建实体类及简单的增删改查
Main12138
持久层 mybatis mysql java xml
Mybatis逆向工程1、概念mybatis可以根据已有的数据库表进行相应的代码生成,为项目的创建书写提供便利,会根据数据库表字段创建对应的实体类,与通用mapper接口以及对应的实现配置,额外提供了对于单表操作动态拼写的相应配置.2、逆向工程创建(1)创建项目(2)导入逆向工程jar包与mysql连接jar包所需资源链接:https://pan.baidu.com/s/1OsSVCfRMnWcF
深入解析基于C#的Windows服务、WCF服务、WebService服务和WebApi服务
猿享天开
c# windows 开发语言
目录1.Windows服务简介实现机制应用场景2.WCF服务简介实现机制应用场景3.WebService服务简介实现机制应用场景4.WebApi服务简介实现机制应用场景区别与联系协议和消息格式扩展性和复杂度使用场景总结总结在现代软件开发中,服务程序是不可或缺的组成部分。不同类型的服务程序具有各自的应用场景和实现机制。本文将深入解析基于C#的Windows服务、WCF服务、WebService服务和
WPF内嵌WCF服务对外提供接口
weixin_30633507
json runtime
要测试本帖子代码请记得管理员权限运行vs。我写这个帖子的初衷是在我做surface小车的时候有类似的需求,感觉这个功能还挺有意思的,所以就分享给大家,网上有很多关于wcf的文章我就不一一列举了。公司有个旧的项目是winform写的,里面就有这个内嵌的wcf,我还没怎么搞过wpf,大家都说winform太老了,于是乎我就想用wpf内嵌下试试看看能不能成功。下面是我的surfacego小车的帖子。ht
WPF与其他技术的集成:与 WinForms、WCF 等协同工作
xcLeigh
WPF 从入门到精通 wpf C# 优化
WPF与其他技术的集成:与WinForms、WCF等协同工作一、前言二、WPF与WinForms集成2.1技术背景与特点2.2集成的必要性2.3集成方式与代码示例三、WPF与WCF集成3.1WCF技术概述3.2集成的应用场景3.3集成步骤与代码示例3.4集成中的安全与性能考虑四、总结结束语优质源码分享WPF与其他技术的集成:与WinForms、WCF等协同工作,在软件开发领域,很少有单一技术能够满
python笔记之常用命令总结
chenlang_lbs
python 笔记
1、nautilus:打开当前工作目录2、wcfiles_names:查看文件的数量3、Pycharm的常用命令ctrl+r:查找命令4、
[email protected] :获得进入nb@电脑的权限5、复制很长的数据的技巧:在数据前面点击+shift+在数据后面点击+(ctrl+c),完成复制
《英雄无敌3:死亡阴影》游戏秘籍
小魚資源大雜燴
游戏
部队相关nwcagents:在英雄部队的空位里加上10个黑骑士。nwctrinity:在英雄部队的空位里加上5个天使长。nwclotsofguns:得到所有战争机器。英雄能力相关nwcneo:英雄升一级。nwcnebuchadnezzar:英雄获得无限移动能力。nwcmorpheus:英雄士气最大。nwcfollowthewhiterabbit:英雄幸运最大。nwcthereisnospoon:英
WCF服务测试实践:wcftest项目分析
时光派
本文还有配套的精品资源,点击获取简介:wcftest是一个与C#相关的项目,用于测试WindowsCommunicationFoundation(WCF)服务。WCF是微软提供的一种框架,支持构建、配置和服务间通信。本项目涵盖服务实现、配置文件、客户端代理、测试代码、解决方案文件、项目文件、示例客户端和项目文档资源。学习该项目需要掌握WCF和.NETFramework基础知识。1.WCF基础与应用
C#流转输分段上传
工厂修程序
C# wcf C#
wcf流传输上传文件不能分段上传的问题已解决。技巧就是上传的流参数不用FileStream用MemoryStream即可。以下是代码:服务契约类:[ServiceContract()]publicinterfaceIMyServer{[OperationContract]voidUploadFile(UploadPartMessagemsg);}消息契约:[MessageContract]publ
微信机器人 DIY【Python 】
碲矿
微信机器人 python
前面微信机器人DIY从0到1介绍了WeChatFerry的前世今生。写的人是觉得挺清楚了,但读的人多半云里雾里。也对,我只是想开车而已,何必需要知道发动机怎么造的?快速使用于是我把WeChatFerry打了个包,可以一键安装:pipinstallwcferry当然,还是有前提的,正如开车上路也需要持证一样。为了正常使用WeChatFerry,需要两个条件:Windows因为PC微信跑在Window
wcferry 微信自动回复、自动保存图片、调用等
运维知多少
python3 微信
之前用的那个微信web登录方式,2天就要掉线,所以现在采用wcferry,windows登录方式。目前所有功能以迁移完成,使用正常。docker部署windows系统version:'3'#使用最新版本services:app1:image:dannicool/wechatbot-provider-windows:latestcontainer_name:wechatbot-provider-wi
C++ 更改字体大小
Nobody-H
C++ 编程
m_pMyFont_Big=newCFont;m_pMyFont_Big->CreateFont(60,//nHeight0,//nWidth0,//nEscapement0,//nOrientationFW_HEAVY,//nWeightFALSE,//bItalicFALSE,//bUnderline0,//cStrikeOutOEM_CHARSET,//nCharSetOUT_DEVICE_
D. Water Tree
Lanthanmum
算法 数据结构
模板题#include#includeusingnamespacestd;constintN=5e5+9;intn;//树剖//1.转成线性部分vectore[N];voidadd(intu,intv){e[u].push_back(v);e[v].push_back(u);}intfa[N],dep[N],sz[N],wc[N];voiddfs1(intu,intf){//fadepszwcfa
C#用 IPC通道 进程间通信
北风知我意
有一个解决方案,其中包括一个Windows服务和一个Windows应用程序,两者之间需要进行通信。查了下,可以使用多种方法,如Webservice(适用于不同系统及跨平台情况)、.NETRemoting、消息队列、WCF(集成了前述方法的功能,但太新,不支持Windows2000及以前的系统),其中Remoting可以支持TCP、HTTP、IPC通道的通信,而IPC通道速度快,且仅能供处于同一个系
java的Lock使用
无尘粉笔
packagecom.wcfb.service;importcn.hutool.core.thread.ThreadUtil;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;/***@auth
windows系统时间被修改导致wcf失联
wangyue4
windows
Windows系统时间被修改可能会干扰WCF(WindowsCommunicationFoundation)服务的正常运作,特别是在安全通讯和消息有效性验证方面。WCF使用时间戳来确保消息的安全性和防止重放攻击。如果系统时间被修改,可能会导致以下问题:安全令牌可能被认为是无效的,因为它们依赖于当前时间。消息的有效性(时间戳)可能无法验证,导致服务无法接受消息。SSL/TLS证书可能会因为时间问题而
2023年最新京东web端h5st3.0/3.1/4.1/4.2算法分析
danran550
逆向笔记 前端
文章目录前言一、初步分析二、详细分析总结h5st4.2分析:https://blog.csdn.net/danran550/article/details/133807065前言最近无聊研究某东网页发现多了个h5st加密参数,在这里分析一下逆向步骤,跟大家共同学习。一、初步分析完整的h5st参数如下:20230219224055580;5811449597265311;e74d9;tk03wcfb
ASP.NET资源大全-知识分享 【转载】
weixin_30808693
c# 操作系统 git
API框架NancyFx:轻量、用于构建HTTP基础服务的非正式(low-ceremony)框架,基于.Net及Mono平台。官网ASP.NETWebAPI:快捷创建HTTP服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。官网ServiceStack:架构缜密、速度飞快、令人愉悦的web服务。官网Nelibur:Nelibur是一个使用纯WCF构建的基于消息的web服务框架。Nel
Web API-添加Swagger,SQL Server,记录并导出到Excel
寒冰屋
ASP.NET CORE 架构及框架 CSharp.NET Web API Swagger Excel
目录介绍要求1.创建一个新的WebAPI项目2.将Swagger添加到项目3.将项目连接到SQLServer数据库4.登录到SQLServer5.添加“导出到Excel”总结下载MikesBank-239.6KB介绍自2016年发布以来,ASP.NETCore取得了惊人的进展,而且每个版本似乎都变得更好,更友好且对开发人员更友好。WebAPI是对旧的WCF服务的巨大改进(我们甚至不谈论SOAP..
[WCF安全系列]从两种安全模式谈起
中科恒信
WCF的安全体系主要包括三个方面:传输安全(TransferSecurity)、授权或者访问控制(AuthorizationORAccessControl)以及审核(Auditing)。而传输安全又包括两个方面:认证(Authentication)和消息保护(MessageProtection)。认证帮助客户端或者服务确认对方的真实身份,而消息保护则通过签名和加密实现消息的一致性和机密性。WCF采
WCF接口的创建和使用
DotNeter-Hpf
.NET Framework 接口 c#
IIS默认没有WCF运行环境,我自行百度的解决方案,大家可以点击参考下第一次做的时候参考的文章,创建WCF服务应用程序是可以直接挂在IIS上运行的,不需要控制台去控制服务是否开启1.使用VS2019创建一个新项目将原有的Class1.cs文件删除,选择项目右键–新建项,找到WCF服务在IService1.cs中添加一段代码,[OperationContract]stringGetData(intv
WCF for .NET CF的一个应用及两个困惑的问题
shansheng
wcf .net string binding mobile 数据库
头段时间看了fox23的两篇WCFMobile的文章,就自己动手做了简单的日志填写程序,就是一张数据表,可以记录某日几点到几点做了哪些工作,公司规定每天都要填写。程序结构如下:服务器端:Foolish.CMIS.ServiceFoolish.CMIS.WCFHost客户端:WorkLog4Mobile具体步骤为:新建一个WCF项目,命名为Foolish.CMIS.Service,然后定义一个服务的
金和OA jc6 GetAttOut SQL注入漏洞复现
keepb1ue
漏洞复现 sql 数据库 web安全 安全
产品简介金和OA协同办公管理系统j6软件是一种综合性的协同办公解决方案,旨在提高企业内部的协作效率和工作效率。它提供了一系列功能和工具,帮助组织进行任务管理、日程安排、文件共享、团队协作和沟通等方面的工作漏洞概述金和OAjc6/jc6/JHSoft.WCF/TEST/GetAttOut接口处存在SQL注入漏洞,攻击者不仅可以利用SQL注入漏洞获取数据库中的敏感信息,还可以向服务器中写入恶意木马或者
WCF REST消息格式(JSON/XML)选择
!chen
json xml
可以说WebHttpBinding和WebHttpBehavior是整个WebHTTP编程模型最为核心的两个类型,前者主要解决消息编码问题,而余下的工作基本上落在了终结点行为WebHttpBehavior上。WebHttpBehavior属性HelpEnabled和AutomaticFormatSelectionEnabled是“帮助页面”与“自动消息格式选择”这两个特性的总开关。publiccl
TOMCAT在POST方法提交参数丢失问题
357029540
java tomcat jsp
摘自http://my.oschina.net/luckyi/blog/213209
昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。
检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。
恢复较多数据后跟踪提交FORM DATA ,发现数
在MyEclipse中增加JSP模板 删除-2008-08-18
ljy325
jsp xml MyEclipse
在D:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\jsp 目录下找到Jsp.vtl,复制一份,重命名为jsp2.vtl,然后把里面的内容修改为自己想要的格式,保存。
然后在 D:\Progr
JavaScript常用验证脚本总结
eksliang
JavaScript javaScript表单验证
转载请出自出处:http://eksliang.iteye.com/blog/2098985
下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...!
&nb
微软BI(4)
18289753290
微软BI SSIS
1)
Q:查看ssis里面某个控件输出的结果:
A MessageBox.Show(Dts.Variables["v_lastTimestamp"].Value.ToString());
这是我们在包里面定义的变量
2):在关联目的端表的时候如果是一对多的关系,一定要选择唯一的那个键作为关联字段。
3)
Q:ssis里面如果将多个数据源的数据插入目的端一
定时对大数据量的表进行分表对数据备份
酷的飞上天空
大数据量
工作中遇到数据库中一个表的数据量比较大,属于日志表。正常情况下是不会有查询操作的,但如果不进行分表数据太多,执行一条简单sql语句要等好几分钟。。
分表工具:linux的shell + mysql自身提供的管理命令
原理:使用一个和原表数据结构一样的表,替换原表。
linux shell内容如下:
=======================开始 
本质的描述与因材施教
永夜-极光
感想 随笔
不管碰到什么事,我都下意识的想去探索本质,找寻一个最形象的描述方式。
我坚信,世界上对一件事物的描述和解释,肯定有一种最形象,最贴近本质,最容易让人理解
&
很迷茫。。。
随便小屋
随笔
小弟我今年研一,也是从事的咱们现在最流行的专业(计算机)。本科三流学校,为了能有个更好的跳板,进入了考研大军,非常有幸能进入研究生的行业(具体学校就不说了,怕把学校的名誉给损了)。
先说一下自身的条件,本科专业软件工程。主要学习就是软件开发,几乎和计算机没有什么区别。因为学校本身三流,也就是让老师带着学生学点东西,然后让学生毕业就行了。对专业性的东西了解的非常浅。就那学的语言来说
23种设计模式的意图和适用范围
aijuans
设计模式
Factory Method 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 适用性 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
Abstr
Java中的synchronized和volatile
aoyouzi
java volatile synchronized
说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。 Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memo
js数组的操作和this关键字
百合不是茶
js 数组操作 this关键字
js数组的操作;
一:数组的创建:
1、数组的创建
var array = new Array(); //创建一个数组
var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]
别人的阿里面试感悟
bijian1013
面试分享 工作感悟 阿里面试
原文如下:http://greemranqq.iteye.com/blog/2007170
一直做企业系统,虽然也自己一直学习技术,但是感觉还是有所欠缺,准备花几个月的时间,把互联网的东西,以及一些基础更加的深入透析,结果这次比较意外,有点突然,下面分享一下感受吧!
&nb
淘宝的测试框架Itest
Bill_chen
spring maven 框架 单元测试 JUnit
Itest测试框架是TaoBao测试部门开发的一套单元测试框架,以Junit4为核心,
集合DbUnit、Unitils等主流测试框架,应该算是比较好用的了。
近期项目中用了下,有关itest的具体使用如下:
1.在Maven中引入itest框架:
<dependency>
<groupId>com.taobao.test</groupId&g
【Java多线程二】多路条件解决生产者消费者问题
bit1129
java多线程
package com.tom;
import java.util.LinkedList;
import java.util.Queue;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.loc
汉字转拼音pinyin4j
白糖_
pinyin4j
以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码:
import java.util.HashSet;
import java.util.Set;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin
org.hibernate.TransactionException: JDBC begin failed解决方案
bozch
ssh 数据库异常 DBCP
org.hibernate.TransactionException: JDBC begin failed: at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68) at org.hibernate.impl.SessionImp
java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.ut
Java PrintWriter打印乱码
chenbowen00
java
一个小程序读写文件,发现PrintWriter输出后文件存在乱码,解决办法主要统一输入输出流编码格式。
读文件:
BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因
[天气与气候]极端气候环境
comsci
环境
如果空间环境出现异变...外星文明并未出现,而只是用某种气象武器对地球的气候系统进行攻击,并挑唆地球国家间的战争,经过一段时间的准备...最大限度的削弱地球文明的整体力量,然后再进行入侵......
那么地球上的国家应该做什么样的防备工作呢?
&n
oracle order by与union一起使用的用法
daizj
UNION oracle order by
当使用union操作时,排序语句必须放在最后面才正确,如下:
只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So:
如果unoin的几个子查询列名不同,如
Sql代码
select supplier_id, supplier_name
from suppliers
UNI
zeus持久层读写分离单元测试
deng520159
单元测试
本文是zeus读写分离单元测试,距离分库分表,只有一步了.上代码:
1.ZeusMasterSlaveTest.java
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.j
Yii 截取字符串(UTF-8) 使用组件
dcj3sjt126com
yii
1.将Helper.php放进protected\components文件夹下。
2.调用方法:
Helper::truncate_utf8_string($content,20,false); //不显示省略号 Helper::truncate_utf8_string($content,20); //显示省略号
&n
安装memcache及php扩展
dcj3sjt126com
PHP
安装memcache tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/php/bin/phpize (?) ./configure --with-php-confi
JsonObject 处理日期
feifeilinlin521
java json JsonOjbect JsonArray JSONException
写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说 直接上代码
&n
Ehcache(06)——监听器
234390216
监听器 listener ehcache
监听器
Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。
activiti 自带设计器中chrome 34版本不能打开bug的解决
jackyrong
Activiti
在acitivti modeler中,如果是chrome 34,则不能打开该设计器,其他浏览器可以,
经证实为bug,参考
http://forums.activiti.org/content/activiti-modeler-doesnt-work-chrome-v34
修改为,找到
oryx.debug.js
在最头部增加
if (!Document.
微信收货地址共享接口-终极解决
laotu5i0
微信开发
最近要接入微信的收货地址共享接口,总是不成功,折腾了好几天,实在没办法网上搜到的帖子也是骂声一片。我把我碰到并解决问题的过程分享出来,希望能给微信的接口文档起到一个辅助作用,让后面进来的开发者能快速的接入,而不需要像我们一样苦逼的浪费好几天,甚至一周的青春。各种羞辱、谩骂的话就不说了,本人还算文明。
如果你能搜到本贴,说明你已经碰到了各种 ed
关于人才
netkiller.github.com
工作 面试 招聘 netkiller 人才
关于人才
每个月我都会接到许多猎头的电话,有些猎头比较专业,但绝大多数在我看来与猎头二字还是有很大差距的。 与猎头接触多了,自然也了解了他们的工作,包括操作手法,总体上国内的猎头行业还处在初级阶段。
总结就是“盲目推荐,以量取胜”。
目前现状
许多从事人力资源工作的人,根本不懂得怎么找人才。处在人才找不到企业,企业找不到人才的尴尬处境。
企业招聘,通常是需要用人的部门提出招聘条件,由人
搭建 CentOS 6 服务器 - 目录
rensanning
centos
(1) 安装CentOS
ISO(desktop/minimal)、Cloud(AWS/阿里云)、Virtualization(VMWare、VirtualBox)
详细内容
(2) Linux常用命令
cd、ls、rm、chmod......
详细内容
(3) 初始环境设置
用户管理、网络设置、安全设置......
详细内容
(4) 常驻服务Daemon
【求助】mongoDB无法更新主键
toknowme
mongodb
Query query = new Query(); query.addCriteria(new Criteria("_id").is(o.getId())); &n
jquery 页面滚动到底部自动加载插件集合
xp9802
jquery
很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容。下面为你推荐 10 个 jQuery 的无限滚动的插件:
1. jQuery ScrollPagination
jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件。
2. jQuery Screw
S