一种应用程序运行的方法及站点接入设备的制造方法

文档序号:9263477阅读:353来源:国知局
一种应用程序运行的方法及站点接入设备的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种应用程序运行的方法及站点接入设备。
【背景技术】
[0002]随着动态网页asp.net应用越来越广泛,对于部署动态网页asp.net站点首选服务器是互联网信息服务器iis,但iis是开发人员是封闭的,在处理复杂问题存在缺陷且在处理超文本传输协议http请求与管理动态网页asp.net程序不能进行过多的干预。比如,基于服务器iis的动态网页asp.net无法稳定的监听端口,由于服务器iis的应用程序池定时回收机制,虽然可以创建套接字socket通信,当应用程序池时间到达,服务器iis会释放应用程序池所占资源,断开socket连接;或者当服务器iis创建应用程序池时,当报告“端口被占用,无法监听socket端口”异常信息时,服务器iis将无法创建应用程序池。
[0003]虽然可以使用.net http协议侦听器http listener临时替代iis,但使用.netHTTP协议侦听器httplistener的程序需要使用管理员权限,用户体验不佳;.netHTTP协议侦听器httplistener的异步接收请求和发送应答是普通的异步编程模型apm模式(beginxxx, endxxx格式),这种异步模式在频繁调用时会大量产生和销毁异步请求对象Iasyncrequest对象,从而增加了 gc的压力,而且iasyncrequest对象没有提供自定义池化的接口 ;httplisenter是.net的包装类,在用户态执行,而http, sys驱动服务是内核态运行,在接受请求,返回应答会进行两次用户态和内核态之间的切换,降低了性倉泛。
[0004]亦或使用.net动态网页运行时httpruntime寄宿动态网页asp.net应用程序,而网络中公开资料实行方式只能寄宿单个运行动态网页asp.net应用程序的实例,无法寄宿多个站点。

【发明内容】

[0005]本发明的目的是提供一种应用程序运行方法及站点接入设备,可以解决目前运行应用程序的寄宿体出现问题难以排查且调优空间不大,或应用程序只能寄宿单个实例来运行的问题。
[0006]为了解决上述技术问题,本发明的实施例提供一种应用程序运行的方法,其中,所述方法包括:
[0007]从网络层接收超文本传输协议http请求报文数据;
[0008]根据所述http请求报文数据查找运行动态网页asp.net应用程序的实例;
[0009]在查找到所述实例后,驱动所述实例的动态网页asp.net层处理所述http请求报文数据。
[0010]进一步地,所述从网络层接收超文本传输协议http请求报文数据的步骤包括:
[0011]从网络层接收封装后的http请求报文数据。
[0012]进一步地,所述根据所述http请求报文数据查找运行动态网页asp.net应用程序的实例的步骤包括:
[0013]分析并查找所述http请求报文数据的请求行数据;
[0014]在查找到所述http请求报文数据的请求行数据后,分析所述请求行数据的统一资源定位符url字段数据;
[0015]根据所述url字段数据获取请求运行动态网页asp.net应用程序对应的虚拟路径;
[0016]根据所述获取到的虚拟路径获取运行所述动态网页asp.net应用程序对应的实例。
[0017]进一步地,所述根据所述url字段数据获取请求运行动态网页asp.net应用程序对应的虚拟路径的步骤包括:
[0018]获取所述url字段数据的首字符数据,在所述首字符数据指示为目录标识字符数据,且在获取到所述url字段数据中的第二个目录标识字符数据后,则截取所述首字符目录标识数据与所述第二个目录标识字符数据之间的字符数据作为所述请求运行动态网页asp.net应用程序对应的虚拟路径;或者
[0019]获取所述url字段数据的首字符数据,在所述首字符数据指示为目录标识字符数据,且在未获取到所述url字段数据中的第二个目录标识字符数据后,则截取所述首字符目录标识数据之后的全部字符数据作为所述请求运行动态网页asp.net应用程序对应的虚拟路径;或者
[0020]获取所述url字段数据的首字符数据,在所述首字符数据指示为不是目录标识字符数据,且在获取到所述url字段数据中的第一个目录标识字符数据后,则截取所述首字符数据至所述第一个目录标识字符数据之间的字符数据作为所述请求运行动态网页asp.net应用程序对应的虚拟路径。
[0021]进一步地,所述根据所述获取到的虚拟路径获取运行所述动态网页asp.net应用程序对应的实例的步骤包括:
[0022]根据所述获取到的虚拟路径在网站存储模块查找与所述虚拟路径对应的运行所述动态网页asp.net应用程序的实例;其中,所述网站存储模块存储有虚拟路径与网站的对应关系;所述虚拟路径以哈希表的键的形式存储于所述网站存储模块中。
[0023]进一步地,所述在查找到所述实例后,驱动所述实例的动态网页asp.net层处理所述http请求报文数据的步骤包括:
[0024]在查找到所述实例后,驱动所述实例的虚拟主机初始化动态网页请求aspnetworkerrequest,并驱动所述虚拟主机通知所述aspnetworkrequest处理所述http请求报文数据,使得所述aspnetworkerequest分析所述http请求报文数据,并将所述http请求报文数据委托给.net动态网页运行时system, web.httpruntime, processrequest进行处理,使得所述动态网页运行时httpruntime根据所述http请求报文数据驱动所述实例执行所述动态网页asp.net应用程序;其中,所述动态网页请求aspnetworkerrequest为.net动态网页请求system, web.hosting, httpworkerrequest的扩展,并定义了所述实例的动态网页asp.net层处理http请求报文数据的规则。
[0025]为了解决上述技术问题,本发明的实施例还提供一种站点接入设备,包括:
[0026]接收模块,用于从网络层接收超文本传输协议http请求报文数据;
[0027]查找模块,用于根据所述http请求报文数据查找运行动态网页asp.net应用程序的实例;
[0028]驱动模块,用于在查找到所述实例后,驱动所述实例的动态网页asp.net层处理所述http请求报文数据。
[0029]进一步地,所述接收模块包括:
[0030]接收单元,用于从网络层接收封装后的http请求报文数据。
[0031]进一步地,所述查找模块包括:
[0032]第一分析单元,用于分析并查找所述http请求报文数据的请求行数据;
[0033]第二分析单元,用于在查找到所述http请求报文数据的请求行数据后,分析所述请求行数据的统一资源定位符url字段数据;
[0034]第一获取单元,用于根据所述url字段数据获取请求运行动态网页asp.net应用程序对应的虚拟路径;
[0035]第二获取单元,用于根据所述获取到的虚拟路径获取运行所述动态网页asp.net应用程序对应的实例。
[0036]进一步地,所述第一获取单元具体用于获取所述url字段数据的首字符数据,在所述首字符数据指示为目录标识字符数据,且在获取到所述url字段数据中的第二个目录标识字符数据后,则截取所述首字符目录标识数据与所述第二个目录标识字符数据之间的字符数据作为所述请求运行动态网页asp.net应用程序对
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1