仓酷云
标题:
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