MOSS中提供了很多web services的服务,都放在http://<Site>/_vti_bin下
我们可以在其他地方,比如winForm,webForm中调用,对MOSS的对象进行灵活操作。
下面我简单列一下调用一个MOSS中的搜索服务的方法:
?
?例如上面:Http://hnkj/_vti_bin/Search.asmx就是Moss自带的webservice
1、在VS2005中加入Web引用,引用地址为http://<Site>/_vti_bin/Search.asmx
?2、搜索代码如下:

using
?System;

using
?System.Data;

using
?System.Configuration;

using
?System.Web;

using
?System.Web.Security;

using
?System.Web.UI;

using
?System.Web.UI.WebControls;

using
?System.Web.UI.WebControls.WebParts;

using
?System.Web.UI.HtmlControls;

using
?System.Text;


public
?partial?
class
?_Default?:?System.Web.UI.Page?



{

????protected?void?Page_Load(object?sender,?EventArgs?e)


????
{

????????WebService.QueryService?query?=?new?WebService.QueryService();


????????StringBuilder?sbXml?=?new?StringBuilder();

????????string?keywordString?=?"测试";

????????sbXml.Append("<QueryPacket?xmlns='urn:Microsoft.Search.Query'>");

????????sbXml.Append("?<Query>");

????????sbXml.Append("??????<SupportedFormats>");

????????sbXml.Append("??????????<Format?revision='1'>");

????????sbXml.Append("??????????????urn:Microsoft.Search.Response.Document:Document");

????????sbXml.Append("??????????</Format>");

????????sbXml.Append("??????</SupportedFormats>");

????????sbXml.Append("??????<Context>");


????????//language可以设置成en-us等不同语言,?type可以设成MSSQLFT,表示使用sql查询的格式

????????sbXml.Append("??????????<QueryText?language='zh-cn'?type='STRING'>");

????????sbXml.Append(keywordString);

????????sbXml.Append("??????????</QueryText>");

????????sbXml.Append("??????</Context>");

????????sbXml.Append("?</Query>");

????????sbXml.Append("</QueryPacket>");


????????//Sharepoint服务默认情况下是关闭匿名访问的,可以使用此方式指定访问时的用户名和密码,

????????//如果在域里面也可以使用?System.Net.NetworkCredential?credentials?=?System.Net.CredentialCache.DefaultCredentials;

????????System.Net.NetworkCredential?credentials?=?new?System.Net.NetworkCredential("test",?"test1");

????????query.Credentials?=?credentials;


????????//?返回xml格式的查询结果

????????string?aa?=?query.Query(sbXml.ToString());

????????//返回DataSet的查询结果

????????DataSet?set?=?query.QueryEx(sbXml.ToString());

????}

}