|
需求:
老板需要一个用Flash播放视频的东东, 其实功能类似于youtube, 然后视频之类的东西都是放在SharePoint Library里面的.
分析:
1. 花了点时间找关于Flash读取SharePoint数据的资料, 于是决定用SharePoint WebService来做.
2. Flash没啥经验, 要写AS之类的, 只能多求助帮助文档了.
实现(部分一,实现SharePoint WebService部分):
1. 在SharePoint里面创建了一个Custom List, 里面新增了三个Field,分别:Category, Picture和Video.
2. 通过VS2005创建了一个WebService工程, 然后引用了Microsoft.SharePoint.dll.
3. 然后实现获取Category, Picture和Video的WebMethod, 代码比较简单就不贴出来了.
4. 右键修改asmx文件, View Markup, 然后把Code behind删除.
4. 为工程强命名.
5. 然后编译工程.
6. 打开Visual Studio Tools里面的命令工具, 然后执行Disco命令, 为WebService工程生成WSDL和DISCO两个文件. 命令如下:
Disco /out:<directoryName> <url>
请参考帮助文档.
7. 修改两个文件的头部:<?xml version="1.0" encoding="utf-8"?>改成:
<%@ Page Language="C#" Inherits="System.Web.UI.Page" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint.Utilities" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<% Response.ContentType = "text/xml"; %>
8. 修改WSD文件: 找到<soap:address Location="" />元素, 替换成:
<soap:address location=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> />
9. 修改WSD文件: 找到<soap12:address Location="" />元素, 替换成:
<soap12:address location=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> />
8和9两个元素基本在最底部.
10. 把两个文件的扩展名改成aspx, 例如: File.WSDL和File.DISCO, 改成: FileWSDL.aspx和FileDISCO.aspx
11. 把asmx文件和上两个文件拷贝到目录: X:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI. SharePoint WebService都是放在该目录下.
12. 把WebService生成的DLL放在: X:\Inetpub\wwwroot\wss\VirtualDirectories\[port]\bin
13. 输入: Http://[Name]/_vti_bin/文件.asmx,出现熟悉的所有的WebMethod界面了.
另我把一些关于web和list的信息放在了XML文件里面, 迁移WebService时候不用重新编译, 同样XML放在ISAPI文件下面.
呵呵, 至此SharePoint WebService部分已经成功实现. 下一篇关于Flash部分了. |
|
|