仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 465|回复: 10
打印 上一主题 下一主题

[学习教程] ASP教程之在Remoting Server上获得Remoting Clie...

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:40:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表