zoukankan      html  css  js  c++  java
  • 自定制SharePoint WebServices取附件

    SharePoint提供的WebServices中没有直接取到附件内容的,都是提供了附件的地址,还需要用WebClient带上身份取,那样可能会因为iis的一些配置被屏蔽掉。

    先用ASP.NET Web 服务模板新建一个网站,将App_Code下的文件删除,然后再添加一个类库项目,cs文件代码如下:

    Code

    编译类库以后将dll文件拷贝到GAC中,将asmx文件内容改为<%@ WebService Language="C#" Class="Service, SPAttachments, Version=1.0.0.0, Culture=neutral, PublicKeyToken=890647b58f8f1295" %>

    到这一步,WebServices应该可以在解决方案中调试运行了 。

    使用VS .NET命令行工具生成disco 和 wsdl文件,命令如下:

    Disco http://localhost:Port/Project_Name/Service1.asmx

    端口 port是.NET调试自动分配的,然后到命令行工具目录下找到disco和wsdl文件

    两个文件改成Attachmentsdisco.aspx和Attachmentswsdl.aspx复制到\12\ISAPI目录下,同时将Attachments.asmx页也复制到该目录,disco中代码可以直接复制该目录里其他类似的网页,aspx将头和  <wsdl:service name="Service">代码段改成类似的网页格式即可。然后在该目录下找到spdisco.aspx文件,在</discovery>前面添加如下两行:

    <contractRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/Attachments.asmx?wsdl"),Response.Output); %> docRef=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/Attachments.asmx"),Response.Output); %> xmlns="http://schemas.xmlsoap.org/disco/scl/" />
    <discoveryRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/Attachments.asmx?disco"),Response.Output); %> xmlns="http://schemas.xmlsoap.org/disco/" />
     再重启IIS即可调用。我遇到的问题是有时候修改类库中的方法再重新部署时不更新……还在研究中

    源码
  • 相关阅读:
    『转载-保持学习的空杯心态』工作中如何做好技术积累
    使用java.io.RandomAccessFile更改文本文件的内容
    The relationship between Sonarcube coverage and code branch
    求学生单科流水表中单科最近/最新的考试成绩表的三种方案(可行性篇)
    HBase 默认配置文件 hbase-default.xml 注释解析
    大数据技术之_10_Kafka学习_Kafka概述+Kafka集群部署+Kafka工作流程分析+Kafka API实战+Kafka Producer拦截器+Kafka Streams
    大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
    如何实现Linux+Windows双系统启动
    Linux系统下对NFS服务安全加固的方法
    awk的基本使用方法
  • 原文地址:https://www.cnblogs.com/Hary/p/1425145.html
Copyright © 2011-2022 走看看