首页 新闻 会员 周边 捐助

dotNet动态发布Webservise服务

0
悬赏园豆:200 [待解决问题]

需求是这样的,我需要做一个运行在服务器端的程序,同过各种这个程序配置能在IIS上自动发布Webservise服务,如点几下,发布一个helloword的方法,其他的客户端就可以调用了,而不用去编译代码。我知道esri发布服务是可以自定义动态的。不知道有什么好的办法或用到哪些技术呢。有没有推荐的技术我自己去学一下。谢谢,欢迎讨论。

王小白的主页 王小白 | 初学一级 | 园豆:2
提问于:2012-11-30 15:33
< >
分享
所有回答(4)
0

WCF+ESB满足不了你的需求吗

Rich.T | 园豆:3440 (老鸟四级) | 2012-11-30 15:39

程序是winform的

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-11-30 15:40

@王小白: 

WCF用于b/s,c/s都行的

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2012-11-30 15:41
0

关键要看你需要发布的服务有多复杂。在SOA中,可以根据WSDL来反向生成服务代码,然后通过静态或者动态编译后发布到IIS中。

Launcher | 园豆:45050 (高人七级) | 2012-11-30 16:35

很简单的东西,通过读取数据库视图或存储过程发布格式化的数据。请问有具体一点的参考方向吗?  比如怎么静态编译发布到IIS中。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-11-30 16:39

@王小白: 说实话,方法很多,根据你的具体需求的不同,各种方式又有开发效率,维护难度,实现难度上的差别。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-11-30 16:45

@Launcher: 先说个最简单的吧。我研究一下实现原理。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-11-30 17:23

@王小白: 用VS建一个网站项目,然后用ASP.NET Web Service写一个简单的服务A,记住代码和文件,然后直接把所有源码发到到IIS中。然后你写一个Winform程序,根据需要从数据库选取视图或存储过程按照服务A的格式新建代码文件,并把代码通过字符串的形式写入,然后把文件直接拷贝到IIS 中。OK了。IIS 会自动重新编译代码。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-11-30 17:42

@Launcher: 你这个我试过,IIS有时候会和winform抢文件,而且不太容易处理。最主要的是,你这个只解决了一半的问题,动态添加方法,没有解决动态添加服务地址的问题。服务器多方系统众多,源码和数据被人篡改或者被人拷贝走也是有可能的,反而照成了系统极大的安全漏洞。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-11-30 18:21

@王小白: 你只要新添加代码文件就行,不要覆盖已有的文件。文件所在的位置就是它的 URL地址。这是最对你来说最容易理解的方式。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-11-30 18:57

@Launcher: 我想了一下,我觉得你的方法比较可行。地址只要增加相关文件就行了。逻辑的封装可以用com接口执行自定义vb脚本来做,放在数据库中也算是有安全保护了,这样也实现了自由定制,虽然效率低了。发布也可以用代码操作IIS,先发布文件,再改指向就行了,这样不会发生抢文件的。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-12-03 11:33
0

webservice本质上还是一个http请求,只不过是吧http请求通过统一的标准,发布的一个xml文件,然后客户端通过解析这个xml文件,就形成了一个webservice。

所以通过WCF或者静态编译什么的都不是解决方案。个人建议的方式是通过拼装一个SOAP标准的xml文件,然后发布到iis上,这样就形成了一个webservice。接下来要做的就是要定义自己的业务流程了(这个是比较复杂的,需要定义一套规则,否则的话就是动态的代码执行了),C#支持动态代码执行。

az235 | 园豆:8483 (大侠五级) | 2012-11-30 23:10

拼装一个SOAP标准的xml文件需要客户端的支持,着点就不方面了,这个类似自定义上层协议的方法,开发起来本身也很有难度,耗时太长了。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-12-03 11:37

@王小白: 这个不需要客户端支持,你直接以soap协议的格式标准制作,客户端是不需要的,开发成本来说如果不熟悉的确是有点麻烦,但是这是最好的方式,和运行效率最快的方式。

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-12-03 15:18

@az235: 没弄懂什么是soap协议啊,也没有弄懂webservice的原理,再次重申,webservice是基于http请求的的一个服务而已。

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-12-03 23:42
0

起始通过windows service + plugin的方式, 很容易达到动态添加webservice服务, 而且windows service还提供了很多可操作的接口

craystall | 园豆:104 (初学一级) | 2012-12-03 11:17

plugin是什么啊,网上找不到相关资料哦。

支持(0) 反对(0) 王小白 | 园豆:2 (初学一级) | 2012-12-03 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册