zoukankan      html  css  js  c++  java
  • 部署 Web Service 到 SharePoint Server

    1)首先利用Visual Studio创建一个 Web Service,开发完成后结构如下:

    001

    2)然后将bin文件夹下的dll文件部署到SharePoint Server的GAC 中,即复制到C:\Windows\assembly\文件夹下。

    3)将Web Service的 *.asmx 文件用记事本打开,将其中的代码

    <%@ WebService Language="C#" CodeBehind="ClassName.asmx.cs" Class="YourNameSpace.YourClass" %>

    改为如下代码

    <%@ WebService Language="C#" Class="YourNameSpace.YourClass,YourNameSpace,Version=YourVersion,Culture=neutral,PublicKeyToken=YourPublicKeyToken" %>

    其中YourNameSpace,YourVersion,YourPublicKeyToken可以通过在C:\Windows\assembly\右击dll文件的属性查看到,YourClass即为开发Web Service的类名。

    4)将Web Service的 *.asmx 文件复制到 C:\ProgramFiles\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS 中,使用disco.exe(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\文件夹下)工具去发现这个Web Service,以生成 .disco 和 .wsdl 文件,生成的文件也在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\文件夹下,运行如下命令生成:

    disco http://MyServerName/_layouts/WebServiceName.asmx

    5)打开 .disco 和 .wsdl 文件,并将头部XML声明代码 (<?xml version="1.0" encoding="utf-8"?>) 替换为下列代码:

    <%@ Page Language="C#" Inherits="System.Web.UI.Page" %>
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Import Namespace="Microsoft.SharePoint.Utilities" %> 
    <%@ Import Namespace="Microsoft.SharePoint" %> 
    <% Response.ContentType = "text/xml"; %>

    6)将.disco 文件中discovery节点中的代码替换如下:

    <contractRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request) + "?wsdl"),Response.Output); %> docRef=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> xmlns="http://schemas.xmlsoap.org/disco/scl/" /> 
    <soap address=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> xmlns:q1="http://tempuri.org/" binding="q1:HelloWorld" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
    <soap address=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> xmlns:q2="http://tempuri.org/" binding="q2:ServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />

    7)将.wsdl 文件中指定的 SOAP 地址替换如下:

    <soap:address location=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> />
    <soap12:address location=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %> />

    8)将*.disco 和*.wsdl文件分别重命名为*disco.aspx 和*wsdl.aspx;

    9)将*.asmx ,*disco.aspx 和*wsdl.aspx这三个文件一起复制到C:\ProgramFiles\Common Files\Microsoft Shared\web server extensions\14\ISAPI\文件夹下,然后就可以直接调用了,调用地址如下:http://MyServerName/_vti_bin/*.asmx

    参考:演练:创建自定义 ASP.NET Web 服务

    作者:Statmoon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    hdu 4465 概率称号
    Log4j配置文件位置+Spring数据源配置文件位置
    Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
    过程 线 多线程 并发 同步异步
    django简单图表
    十年
    一起写2048(160行python代码)
    leetcode
    匹配算法重载方法
    串行卧重建10:小设计,而不是大布局
  • 原文地址:https://www.cnblogs.com/leolis/p/2718719.html
Copyright © 2011-2022 走看看