.net remoting-Marshaling & Activation[下篇]

  在.net remoting-Marshaling Activation[上篇], 花了大量的文字来来描述了Remote Object如何通过Marshaling的过程从Server端所在的Application Domain经过相关的转换(Transformation)传递到Client所在的Application Domain供Client调用; 以及Client的调用请求如何在Activate处于Server端Application Domain的Remote Object。大体的要点如下:  Host在Server端注册Client可能 会用到的一到多个Channel用于传输C
http://www.w3dev.cn/article/20120531/.net-remoting-Marshaling-Activation-II.aspx

.net remoting-远程对象的生命周期管理[上篇]

1.CLR的垃圾回收机制  在.NET中提到对象的生命周期,我们会不由自 主地想到CLR的垃圾回收。在运行一个.NET程序过程中,我们通过某种方式,比如通过new操作符,通过反序列化,通过反射机制,创建一个对象,CLR 在为这个对象在托管堆中开辟一块内存空间。随着程序的运行,创建的对象越来越多,托管堆中的可用的内存越来越少,必须有一种机制来判断被分配在托管堆中的 对象那些已经不被使用,以及进行对这些对象占用的内存进行回收。这种机制被称为CLR自动内存管理,也就是我们常说的垃圾回收。为了说清楚远程对象的生命 周期管理,我们 得首先了解本地对象的生命周期。  首先我们来说说CLR如何判断分配在托
http://www.w3dev.cn/article/20120531/.net-remoting-object-Life-cycle-I.aspx

WCF REST-帮助页面与自动消息格式(JSON/XML)选择

le.WriteLine(Content-Type = N/A, Accept = application/json:); 12: GetAllEmployees(, contentType);  从如下所示的输出结果我们可以看出:由于服务调用请求没有指定任何媒体类型相关的报头,所以回复消息采用的是契约接口中设置的消息格式Xml。对于 后两次服务调用中,由于请求消息中分别通过Content-Type和Accept报头将期望的媒体类型设置为application/json,所 以Json最终作为回复消息的格式。(S1006) 1: Content-Type = N/A; Accept =
http://www.w3dev.cn/article/20120523/wcf-rest-json-xml-choice.aspx

WCF REST-ASP.NET Output Caching缓存

Param被设置为none表示缓存项与请求的查询字符串无关。此外,该 CacheProfile还设置针对某个本地数据库中的TestTable表的SQL依赖(SQL Dependency)。关于CacheProfile的配置属于ASP.NET的范畴,在这里我们不会作过多的讨论。  既然是采用ASP.NET输出缓存,WCF服务自然需要采用IIS寄宿并采用ASP.NET 兼容模式。值得一提的是,基于AspNetCacheProfileAttribute的输出缓存仅仅针对HTTP-GET。二、实例演示:创建采用输出缓存的服务  接下来我们通过一个简单的实例来演示如何通过操作行为对某个操作的返回值实施缓
http://www.w3dev.cn/article/20120523/wcf-rest-ASP.NET-Output-Caching.aspx

WCF REST学习目录

WCF REST-REST服务实例WCF REST-WebHttpBinding与消息编码WCF REST-Web消息主体风格(Message Body Style)WCF REST-帮助页面与自动消息格式(JSON/XML)选择WCF REST-WebServiceHost介绍WCF REST-UriTemplate、UriTemplateTable与WebHttpDispatchOperationSelectorWCF REST-ASP.NET Output Caching缓存WCF REST-通过条件资源获取提高性能
http://www.w3dev.cn/article/20120523/WCF-REST-catalog.aspx

WCF授权-ASP.NET Roles授权[上篇]

s用户组,而是将用户的权限信息维护在相应的数据库中,通过单独的安全系统来维护。在这种情况下,基于ASP.NET角色管理模块的授权模 式是一个不错的选择。一、ASP.NET Roles提供程序  和 Membership一样,Roles也是ASP.NET一个重要的提供程序,旨在解决对角色的维护和基于角色的授权。ASP.NET Roles同样采用策略设计模式,角色的添加、删除、获取以及授权功能定义在System.Web.Security.RoleProvider这个抽象 类中。而ASP.NET默认提供了如下三个具体的RoleProvider,它们同时也体现了角色和授权信息的三种不同的存储形式。如
http://www.w3dev.cn/article/20120521/wcf-authorization-ASP.NET-Roles-I.aspx

WCF授权-ASP.NET Roles授权[下篇]

.Contracts.ICalculator/ 7: /client 8: /system.serviceModel 9: /configuration  在这之前我们需要创建了两个Windows帐号Foo和Bar,密码为Password。由于我们现在是采用ASP.NET Roles进行授权,我们需要通过Roles这个静态类为他们分配相应的权限。为了省事,我直接将相应的实现写在如下所示的服务寄宿程序中。在这段代码 中,如果Administrators角色不存在,先创建它,并将其分配给用户Jinnan-PC\Foo(Jinnan-PC为我的机器名,对于域帐 号,用
http://www.w3dev.cn/article/20120521/wcf-authorization-ASP.NET-Roles-II.aspx

asp.net如何判断是否搜索引擎访问网站

  asp.net可以通过useragent来判断是否搜索引擎来访问网站,因为不同的搜索引擎有不同的useragent信息,具体参考 搜索引擎useragent列表  下面为C#版本的源代码 /// summary /// 判断是否为搜索引擎访问 /// /summary /// param name=useragent/param /// returns/returns public bool IsSearchEngine(string useragent) { bool engine = false; if (!str
http://www.w3dev.cn/article/20120515/asp.net-check-is-searchengine-visit-website.aspx

WCF底层异常处理框架实现原理一

ception  在《WCF技术剖析(卷1)》中,我曾经提到过,在整个WCF体系下,数据存在的形态大体可以分为两种:XML和托管对象(Managed Object)。WCF建立在.NET平台下,利用托管语言(C#和VB.NET)开发人员提供了一个面向对象的编程模型,所以,在WCF体系最顶层的数 据形态表现为.NET托管对象。而最终服务调用体现在消息的交换上,消息时基于XML的(除了少部分非XML的消息,比如JSON)。从数据转化的角度上 讲,WCF起到了一个将数据从这两种形态数据进行转化和适配的作用。  在WCF异常处理体系中,对于异常或者错误,在XML的世界里最终通过Fault消息体现;而
http://www.w3dev.cn/article/20120502/wcf-basic-excption-handle-1.aspx

ASP.NET模拟WCF基础架构

alculator 2: { 3: public double Add(double x, double y) 4: { 5: return x + y; 6: } 7: }步骤三、实现服务端对服务调用请求的处理我们通过一个ASP.NET的Web Page来模拟WCF服务端对服务请求的处理,下面的Calculator类型相关的代码实际上就是Calculator.aspx的后台代码(Code Behind)。整个处理流程不算复杂。在构造函数中,调用Utility的CreateICalculator方法,将所需的组件进行 初始化,而
http://www.w3dev.cn/article/20120425/asp.net-Simulation-wcf-Architecture.aspx

利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side)模式和ASP.NET兼容模式。对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个 HttpHandler实现。只有在ASP.NET兼容模式下,我们熟悉的一些ASP.NET机制才能被我们使用,比如通过HttpContext的请求 下下文;基于文件或者Url的授权;HttpModule扩展;身份模拟(Impersonation)等。  由于在ASP.NET兼容 模式下,ASP.NET采用与.aspx Page完全一样的
http://www.w3dev.cn/article/20120425/asp.net-support-session-wcf-service.aspx

在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效

BaseAddress的配置。  那么WCF采用怎样的方式来判断当前服务寄宿的方式是基于IIS呢,还是其他呢?答案是通过 System.Web.Hosting.HostingEnvironment的静态属性IsHosted。对于ASP.NET有一定了解的人应该很清 楚,在一个ASP.NET应用下,该属性永远返回为True。也就是说,WCF会把基于ASP.NET应用的服务寄宿,看成是基于IIS的服务寄宿,这显 然是不对的。 1: public sealed class HostingEnvironment : MarshalByRefObject 2: { //其他成员 3
http://www.w3dev.cn/article/20120425/asp.net-Application-hosting-baseaddress-Invalid.aspx

.NET使用Memcached资料整理

/memcached/Memcached Win32 1.2.6下载:http://code.jellycan.com/memcached/安装帮助:window系统.NET环境安装MemcachedMemcached .NET客户端:1).NET memcached client library  下载地址:https://sourceforge.net/projects/memcacheddotnet  相关文章:.net使用Memcached简介2)enyim.com Memcached Client  下载地址:http://www.codeplex.com/EnyimMemcach
http://www.w3dev.cn/article/20120419/.NET-Memcached-resource.aspx

window系统.NET环境安装Memcached

块大小增长因子,默认是1.25-n bytes 最小分配空间,key+value+flags默认是48-h 显示帮助然后就可以用.net 的memcached客户端来试一下了。C# 下可用的API(每个客户端API中都有详细的说明和注释)https://sourceforge.net/projects/memcacheddotnet/http://www.codeplex.com/EnyimMemcached/ - Client developed in .NET 2.0 keeping performance and extensibility inmind. (Supports cons
http://www.w3dev.cn/article/20120419/window-.net-install-Memcached.aspx

.net使用Memcached简介

  3. 命令行输入 'c:\memcached\memcached.exe -d start',该命令启动 Memcached ,默认监听端口为 11211  通过 memcached.exe -h 可以查看其帮助  二、.NET memcached client library  下载文件:https://sourceforge.net/projects/memcacheddotnet/  里面有.net1.1 和 .net2.0的两种版本 还有一个不错的例子。  三、应用  1. 将Commons.dll,ICSharpCode.SharpZipLib.dll,log4n
http://www.w3dev.cn/article/20120419/.net-use-Memcached.aspx

asp.net使用render方法替换页面内容

tringWriter.Dispose(); htmlWriter.Close(); htmlWriter.Dispose(); } }/scripthtml xmlns=http://www.w3.org/1999/xhtmlhead id=Head1 runat=server title孟宪会之替换页面呈现内容测试/title/headbody form id=form1 runat=server [mxh] /form/body/html来源:http://blog.csdn.net/net_lover/article/details/5324455
http://www.w3dev.cn/article/20120413/asp.net-render-replace-content.aspx

CS0117: “System.Net.Mail.MailMessage”并不包含“ReplyToList”的定义

  今天在使用System.Net.Mail.MailMessage发送邮件的时候为了设置回复地址,使用了MailMessage的ReplyToList对象,但是编译的时候出现了CS0117: System.Net.Mail.MailMessage并不包含ReplyToList的定义的错误。  mail.ReplyToList.Add(new MailAddress(回复地址));  奇怪,ReplyToList是vs2010的IDE提示的建议的对象,ReplyTo对象是被否决了的。难道是framework版本的问题?vs2010版本比较高,默认的framework版本是4.0,IDE提示也
http://www.w3dev.cn/article/20120411/System-Net-Mail-MailMessage-not-include-ReplyToList-defined.aspx

asp.net绘制仪表盘控件

c3163f2cd0cb Namespace=Infragistics.UltraGauge.Resources TagPrefix=igGaugeProp %igGauge:UltraGauge ID=UltraGauge2 runat=server /igGauge:UltraGauge igGauge:UltraGauge ID=UltraGauge2 runat=server /igGauge:UltraGauge看看效果是否达到了呢?界面比较单调。来源:http://blog.csdn.net/david_520042/article/details/7394188
http://www.w3dev.cn/article/20120408/asp-net-draw-instrument-panel-control.aspx

ADO.NET Entity Framework资料1

NET Entity Framework,即下一代的ADO.NET。它是比Linq To SQL更加强大的ORM,让开发人员只需要着眼于领域对象模型的开发,而不需要考虑它们是如何与关系数据库交互。   本文由一个简单的例子进行介绍Entity Framework是如何使用的。在此之前,必须下载ADO.NET Entity Framework runtime 和tools,官方也提供了很多示例下载。下面正式开始ADO.NET Entity Framework之旅(开发工具VS 2008 beta,以Northiwind数据库为例)。  首先建立一个Console project(要选择.NET
http://www.w3dev.cn/article/20120331/ado-net-entity-framework-1.aspx

ADO.NET Entity Framework资料2

  ADO.NET Entity Framework,即下一代的ADO.NET。它是比Linq To SQL更加强大的ORM,让开发人员只需要着眼于领域对象模型的开发,而不需要考虑它们是如何与关系数据库交互。上一篇文章简单介绍了在项目中如何使用ADO.NET实体框架,从现在开始,正式进入了ADO.NET的学习之旅。这篇文章主要介绍在ADO.NET实体框架中如何进行查询(以Northwind数据库为例)。1. 使用EntityCommand进行查询  在实体框架中,我们可以通过EntityCommand进行查询,它的使用方法就像ADO.NET中的SqlCommand。不同的是 SqlComma
http://www.w3dev.cn/article/20120331/ado-net-entity-framework-2.aspx

提高.Net平台下TCP传输速度

外再开辟1个G的内存来缓存,对于系统来说简直是无法忍受。由于我们用.net 发送数据,我们在发送时需要将对象序列化到流中,而不能像 C/C++那样直接通过指针来读取数据(当然你也可以用unsafe代码,但这种方式会带来其他问题,而且并不为大家所推荐),所以我们需要开发一个专门用 TCP 发送缓存的流来处理读写前的缓存。为此我开发了一个 TcpCacheStream 类,这个类被用在读写 NetworkStream 前先进行缓存。 调用方法很简单   发送过程object msg;//初始化 msg 过程省略System.Net.Sockets.NetworkStream _ClientStre
http://www.w3dev.cn/article/20120318/improve-net-tcp-transport-speed.aspx

ASP.NET ICallbackEventHandler接口

  ASP.NET 2.0 Callback 使得ASP.NET Server端控件能够调用服务端的方法而不需要执行一个完整的Postback过程,也就是说使得Server端控件可以很好的支持Ajax。   Callback不同于Postback之处在于向服务器发送请求时只有ViewState和用户自定义信息被发送到服务器端,请求完毕后,只返回用户自定义结果,而不会从Render页面。  GridView控件正是使用了这个技术来实现无刷新的分页及排序功能,那么它是如何实现的哪,我们又如何在自定义控件中添加该功能哪?本文将会简单地阐述如何使用ASP.NET 2.0 Callback来实现Ajax
http://www.w3dev.cn/article/20120317/ASP-NET-ICallbackEventHandler-interface.aspx

.NET性能优化细节

.NET性能优化 1)避免使用ArrayList。  因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。2)使用HashTale代替其他字典集合类型  (如StringDictionary,NameValueCollection,HybridCollection),存放少量数据的时候可以使用HashTable.3)为字符串容器声明常量,不要直接把字符封装
http://www.w3dev.cn/article/20120308/net-performance-Optimization.aspx

.NET WMI名字空间介绍

关系。规范应用程序的对象,使其符合WMI的规范,这样的工作对于.NET程序员来说是直接简单的。因为WMI的架构模式本来就是面向对象的,并且有很多的特性与.NET元数据是相通的。因此应用程序的对象可以直接映射为WMI对象,相同的,使应用程序代码转化为可管理的应用程序代码将不会需要很大的代价。举例来说您可以如此规范化.NET应用程序:n 应用程序的组件可以发生事件。n 提供可管理的对象使得应用程序可以配置。n 暴露运行时数据,如性能特性来源:http://blog.csdn.net/21aspnet/article/details/153922
http://www.w3dev.cn/article/20120307/net-wmi-namespace-introduce.aspx

ASP.NET Session常见问题

directive”?答:这个问题可能在一个已经安装了Microsoft Visual Studio .NET开发环境的机器上,再安装Window Sharepoint Server(WSS)后出现。WSS ISAPI过滤器会处理所有的请求。当你通过虚拟目录浏览一个ASP.NET的应用程序时,ISAPI过滤器不会给文件夹目录分配URL。解决方法是:不要再安装了WSS的机器上使用Session。详细信息请参考:Session state cannot be used in ASP.NET with Windows SharePoint Serviceshttp://support.micro
http://www.w3dev.cn/article/20120304/asp-net-session-problem.aspx

asp.net加密数据库连接驱动

注册上面的的路径和名称! 运行后出现成功! 4.解密 同样到网站根目录添加一个批处理文件deweb.bat,内容如下: @echooff C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis-pef"system.web/identity""E:/HSStudio/Donet2/Hnlawyer" C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis-pdf"connectionStrings""E:/HSStudio/Donet2/Hnlawyer" PAU
http://www.w3dev.cn/article/20120303/asp-net-encrypt-database-link-string.aspx

ASP.NET生成统计图表

N" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"html xmlns="http://www.w3.org/1999/xhtml" head runat="server" title清清月儿http://blog.csdn.net/21aspnet/title/headbody form id="form1" runat="server" div style="text-align: left" table style="width: 600px" tr td colspan="3" style="height: 20p
http://www.w3dev.cn/article/20120227/asp-net-create-statistics-chat.aspx

asp.net如何实现断点续传文件下载

本和附件分开。示例代码  我们知道了客户端和服务器如何交换头信息以保证可恢复的下载,把这些知识与文件块流的思想结合起来,你就可以给自己的ASP.NET应用程序增加可靠的下载管理能力了。  获取下载过程的控制权的方法是从客户端截取下载请求、读取头信息并适当地响应。在.NET之前,你必须编写ISAPI(Internet服务器API)应用程序来实现这种功能,但是.NET框架组件提供了一个IHttpHandler接口,在类中实现的时候,它允许你仅仅使用.NET代码就能够截取和处理请求。这意味着你的应用程序对于下载过程有完全控制权和响应性,再也不会涉及或使用IIS的自动化函数。  示例代码在HttpHa
http://www.w3dev.cn/article/20120226/file-resume-broken-downloads.aspx

.NET Assembly详细介绍

application that requires different versions of the Calculus.dll assembly CLR能够将名程相同但路径不同的多个文件加载到同一个地址空间,这在.NET中称为并存执行(Side-By-Side)执行,它是解决Windows中”DLL Hole”问题的关键技术。 如.NET Framework 1.0 和.NET Framework 1.1都可以同是在一台机器上运行,这用到的就是并存执行(Side-By-Side)执行。 更多参考: ms-help://MS.MSDNQTR.2004APR.1033/cpguide/html
http://www.w3dev.cn/article/20120225/net-assembly-introduction.aspx