zoukankan      html  css  js  c++  java
  • 在SPS中加入自定义WebService

    前几天写了一个WinForms的客户端软件,可以远程连接SPS站点并(断点续传)上传文件。 图片:登录:http://blog.joycode.com/kaneboy/gallery/image/761.aspx设置每次上传的Block Size:http://blog.joycode.com/kaneboy/gallery/image/762.aspx上传:http://blog.joycode.com/kaneboy/gallery/image/763.aspx界面简陋哈,呵呵,现在主要是实现功能阶段。 WinForms客户端程序是通过连接SPS站点中自定义的WebService来获取信息、上传文件的。由于SPS接管了ASP.NET的WebService处理,所以加入自定义的WebService有点麻烦,先讲讲SPS自己怎么处理自己的WebService的: SPS把所有的WS都放在_vti_bin虚拟目录中,这个虚拟目录映射的是Program FilesCommon FilesMicrosoft SharedWeb Server Extensions60ISAPI目录,呵呵,这个目录下就放着所有SPS自带的WS,如果有客户端连接这里的WS,SPS会通过执行wsdisco.aspx和wswsdl.aspx这两个文件来返回客户端所请求的WebService的Disco和WSDL信息。 wsdisco.aspx的执行流程很简单:比如客户端请求versions.asmx这个WebService,那么wsdisco.aspx会在这个目录中查找名称为versionsdisco.aspx的文件,然后用Server.Execute()方法来执行它,versiondisco.aspx更简单,就是把version.asmx的Disco信息输出。wswsdl.aspx的流程类似。 知道了SPS处理WS的方式,加入自己的WS就很简单了。如果你根本用不着它自带的WS,而且想用自己的方式来返回Disco和WSDL信息,那么可以改写wsdisco.aspx和wswsdl.aspx这两个文件,让它们实现自己的处理方式。或者按照SPS的方式来,把自己的WS、Disco信息、WSDL信息都用和SPS相同的方式来加入就行了。我是用的后者。 如果看看SDK里面SPS自带的WS,可以看到它们都是把请求的数据用XML来描述并返回XmlNode对象,这是个好方法,我自己的WS也都是采用类似的方式返回XmlNode。 自己还有一个想法,就是让用户可以用Office Research Service来直接在Office里面对SPS文档库进行全文检索的搜索,呵呵,同样是WS的应用,实现并不困难。 另外说说别的事,关于.Net Assembly的Decompiler的,最近常常用.Net Reflector的Decompiler功能看自己写的Assembly,主要看看C#编译器怎么处理一些代码的。昨晚灵机一动,用VS2003的VC#和Delphi8分别写了一段一模一样的代码,创建一个Array然后用一个循环赋值后用IndexOf来查找一个值,分别生成Assembly后再用Decompiler来看,看看他们处理的代码是否一样。 结果发现C#编译器生成的MSIL几乎被忠实的反编译成了和源码一模一样的代码,包括for循环,而D8编译器生成的MSIL的循环则被还原成用一个if和goto实现的循环。 哈哈,我想这不能证明D8的编译器比C#编译器更能优化代码,而是证明Decompiler更熟悉C#编译器编译的MSIL的风格(也就是说,这个Decompiler的作者专门研究了C#编译器编译for、if…的结果),所以更能忠实的还原代码。
  • 相关阅读:
    SP笔记:交叉实现七行并成一行
    HTML tag 学习
    操作哈希表
    Efficient bipedal robots based on passivedynamic walkers
    Pushing People Around
    ZEROMOMENT PONTTHIRTY FIVE YEARS OF ITS LIFE

    Active Learning for RealTime Motion Controllers
    Accelerometerbased User Interfaces for the Control of a Physically Simulated Character
    Dynamic Response for Motion Capture Animation
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2333666.html
Copyright © 2011-2022 走看看