仓酷云

标题: ASP教程之在Remoting Server上获得Remoting Clie... [打印本页]

作者: 谁可相欹    时间: 2015-1-16 23:40
标题: ASP教程之在Remoting Server上获得Remoting Clie...
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。client|ip地点|serverInshort,theRemotingServercanmakeuseofSinkandSinkProvidertoretrievetheIPaddressoftheincomingrequest.TheIPaddressisavailableintheTransportHeadersoftheincomingmessage.AfterretrievingtheIPaddressintheSink,wesavetheIPaddresstotheCallContext,sothatitwillbeavailablelaterinthecodeexecutionpathaswell.Thefollowingsaresomebackgroundinformationregardingthetopics:


SinksandSinkChains
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconsinkssinkchains.asp

UsingCallContext
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingcallcontext.asp


CodemodifiedfromthesamplebyIngoRammer,authorof“Advanced.NetRemoting”:


usingSystem;

usingSystem.Collections;

usingSystem.IO;

usingSystem.Runtime.Remoting;

usingSystem.Runtime.Remoting.Messaging;

usingSystem.Runtime.Remoting.Channels;

usingSystem.Threading;

usingSystem.Net;



namespaceClassLibRemotingIPSink

{



publicclassClientIPServerSinkProvider:IServerChannelSinkProvider

{

privateIServerChannelSinkProvidernext=null;



publicClientIPServerSinkProvider(IDictionaryproperties,ICollectionproviderData)

{

}



publicvoidGetChannelData(IChannelDataStorechannelData)

{

}



publicIServerChannelSinkCreateSink(IChannelReceiverchannel)

{

IServerChannelSinknextSink=null;

if(next!=null)

{

nextSink=next.CreateSink(channel);

}

returnnewClientIPServerSink(nextSink);

}



publicIServerChannelSinkProviderNext

{

get{returnnext;}

set{next=value;}

}

}



publicclassClientIPServerSink:BaseChannelObjectWithProperties,IServerChannelSink,IChannelSinkBase

{

privateIServerChannelSink_next;



publicClientIPServerSink(IServerChannelSinknext)

{

_next=next;

}



publicvoidAsyncProcessResponse(System.Runtime.Remoting.Channels.IServerResponseChannelSinkStacksinkStack,System.Objectstate,System.Runtime.Remoting.Messaging.IMessagemsg,System.Runtime.Remoting.Channels.ITransportHeadersheaders,System.IO.Streamstream)

{

}



publicStreamGetResponseStream(System.Runtime.Remoting.Channels.IServerResponseChannelSinkStacksinkStack,System.Objectstate,System.Runtime.Remoting.Messaging.IMessagemsg,System.Runtime.Remoting.Channels.ITransportHeadersheaders)

{

returnnull;

}



publicSystem.Runtime.Remoting.Channels.ServerProcessingProcessMessage(System.Runtime.Remoting.Channels.IServerChannelSinkStacksinkStack,System.Runtime.Remoting.Messaging.IMessagerequestMsg,System.Runtime.Remoting.Channels.ITransportHeadersrequestHeaders,System.IO.StreamrequestStream,outSystem.Runtime.Remoting.Messaging.IMessageresponseMsg,outSystem.Runtime.Remoting.Channels.ITransportHeadersresponseHeaders,outSystem.IO.StreamresponseStream)

{

if(_next!=null)

{

IPAddressip=requestHeaders[CommonTransportKeys.IPAddress]asIPAddress;

Console.WriteLine(ip.ToString());

CallContext.SetData("ClientIPAddress",ip);

ServerProcessingspres=_next.ProcessMessage(sinkStack,requestMsg,requestHeaders,requestStream,outresponseMsg,outresponseHeaders,outresponseStream);

returnspres;

}

else

{

responseMsg=null;

</p>结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。
作者: 山那边是海    时间: 2015-1-17 15:50
如何更好的使自己的工具看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 老尸    时间: 2015-1-20 18:48
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: admin    时间: 2015-1-21 18:32
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 若相依    时间: 2015-1-30 07:35
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 愤怒的大鸟    时间: 2015-2-2 16:38
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者: 仓酷云    时间: 2015-2-8 01:38
不能只是将它停留在纸上谈兵的程度上。
作者: 透明    时间: 2015-2-23 22:24
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 莫相离    时间: 2015-3-7 10:25
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 再现理想    时间: 2015-3-14 20:52
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 蒙在股里    时间: 2015-3-21 14:14
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2