网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用ASP.NET实现简单的文字水印.
.ASP.NET 2.0 中 Treeview 的Chec.
.如何获取当前程序文件的路径 Cur.
.页面根据不同Url显示不同Title以.
.asp.net1.1 开发专用模板类.
.ASP.NET中数据校验部分的封装与应.
.慎用url重写 .
.在ASP.NET Atlas中调用Web Servi.
.正则表达式在网页处理中的应用四.
.利用WebRequest来实现模拟浏览器.
.ASP.net Server Application Una.
.利用模版生成html页.
.ASP.Net2.0 GridView 多列排序,.
.用.net开发不同操作系统下应用的.
..net下访问Access数据库需要注意.
.Asp.net中防止用户多次登录的方法.
.获得汉字字符串的首个拼音字母的.
.过滤ASP.NET输出HTML中的无用空格.
.Asp.Net 使用 GDI+ 绘制3D饼图入.
.用asp.net还原与恢复sqlserver数.

用ASP.NET包装第三方组件以提供服务的尝试

发表日期:2006-3-20


  不少应用程序的作者为编程人员提供了可以在其它程序中复用的组件。我们通常会在自己的程序中引入这些第三方组件,调用其中现成的函数来实现相对复杂的功能。事实上,我们也可以通过网络发布第三方组件中的函数,以便为更多用户更为方便地提供服务。

  对于.NET开发,可以通过ASP.NET(对人)或Web Service(对机器)技术包装第三方组件。下面以用ASP.NET发布Matlab组件中的Execute函数为例说明。前提是服务器上已安装Matlab。

  在VS2005中新建一个ASP.NET站点,在Solution Explorer窗格的站点目录上点击右键选择Add Reference,加入Matlab的COM组件:Matlab Application(version X.X) Type Library。

  在网页上分别添加一个TextBox、一个Button和一个Literal控件。TextBox用以输入表达式,Button确定执行,Literal输出结果。添加以下事件代码,以便调用Matlab组件中的Execute函数执行Matlab语句:

    Protected Sub Button1_Click(ByVal sender As Object, _

    ByVal e As System.EventArgs) Handles Button1.Click

        Dim matlab As New MLApp.MLApp

        Dim strMatLab As String

        strMatLab = TextBox1.Text

        Dim strResult As String = matlab.Execute(strMatLab)

        strResult = strResult.Replace(Chr(10), "<br>")

        strResult = strResult.Replace(" ", "&nbsp;")

        Me.Literal1.Text = strResult

        matlab.Quit()

    End Sub

  在VS2005中运行这个站点,在出现的网页中输入一个表达式,如“dsolve('Dx=x^2+5')”,点击按钮后随即会显示结果:“ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)”。但如果用IIS发布这个站点,运行时则会出错,提示的原因是ASP.NET没有创建组件的权限。根据出错提示,我们需要在网站的web.config文件中加入一句:

<identity impersonate="true" userName="xx" password="xx"/>

  这里指明的用户应当是服务器端有相关权限的用户。如果不指定则在客户端页面进行身份验证。当然,在web.config中明文保存用户名和密码是不安全的,在真正的应用中要加密。

  就此,我们完成了Matlab表达式求值函数的网络发布。可以通知没有安装Matlab的朋友登录你的网站使用的Matlab强大的计算功能了。(注意:此例仅供演示,Matlab强大的语句和工具箱足以让远程用户通过这个网页访问你的文件系统。)

  由于HTTP协议的性质以及服务器端执行的特性,这种对第三方组件的包装一般适于发布数据处理函数,而不适于发布控制函数。同时这一方法对实时性强或需要保存状态的服务也不很适宜。安全起见,我们也可以对第三方组件进行二次封装,加入数据过滤与异常处理。

  原理非常简单。希望大家能与我讨论这一方案在实际应用中的价值。

参考:

1、李洪根,在.NET中应用MATLAB算法

http://www.microsoft.com/china/community/Column/25.mspx

2、Matlab 7.1,Matlab Web Server 相关帮助文档

上一篇:asp.net全局异常处理 人气:6124
下一篇:Asp.net前后台值的调用 人气:5730
浏览全部ASP.NET的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐