3-5SharePoint 开发自定义WCF服务
新建wcf服务接口类
引入wcf使用的类库

接口的
IGetWebTitle.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization; using System.ServiceModel; namespace ljzCustomWcf { [ServiceContract] public interface IGetWebTitle { [OperationContract] string GetSPWebTitle(string SiteUrl, string WebUrl); } }
wcf的实现类: 继承上述接口并实现
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization; using System.ServiceModel; using Microsoft.SharePoint.Client.Services; using Microsoft.SharePoint; using System.ServiceModel.Activation; namespace ljzCustomWcf { [BasicHttpBindingServiceMetadataExchangeEndpointAttribute] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] class GetWebTitle:IGetWebTitle { public string GetSPWebTitle(string SiteUrl, string WebUrl) { string title = string.Empty; SPSecurity.RunWithElevatedPrivileges(delegate () { using (SPSite site = new SPSite(SiteUrl)) { using (SPWeb web = site.OpenWeb(WebUrl)) { title = web.Title; } } }); return title; } } }
wcf前台文件新建,映射至 isapi

新建 svc前端文件

<%@ServiceHost Language="C#" Debug="true" Service="ljzCustomWcf.GetWebTitle,ljzCustomWcf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=05d45f268bd901c4" Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressBasicHttpBindingServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
部署

部署后svc前端文件位置

部署后程序集dll文件位置

iis网站中的位置


客户端调用
添加服务引用

调用

目录
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.Generic; using System.ServiceModel; using System.Net; namespace ljzCustomWcfDiaoYong { class Program { static void Main(string[] args) { BasicHttpBinding binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; EndpointAddress endpoint = new EndpointAddress("http://localhost:8000/_vti_bin/GetWebTitle.svc"); ServiceReference1.GetWebTitleClient proxy = new ServiceReference1.GetWebTitleClient(binding, endpoint); NetworkCredential nc = proxy.ClientCredentials.Windows.ClientCredential; nc.UserName = "spsetupadmin"; nc.Password = "ljz815911L"; nc.Domain = "sp"; string tt = proxy.GetSPWebTitle("http://sp2016:8000/sites/topsite/", ""); Console.WriteLine(tt); } } }
目录


浙公网安备 33010602011771号