zoukankan      html  css  js  c++  java
  • SharePoint 2010之部署WCF

    sharepoint 2010上部署WCF方法和步骤整理如下: 

    ·         在sharepoint project中创建WCF文件,保证运行正常

    ·         增加svc文件到layouts文件夹

       a) Add SharePoint “Layouts” Mapped Folder --> add a xml file named "WCFService.svc"

       b)替换上述创建的svc文件内容:

      <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$"%> 
     

       <% @ServiceHost Service="MyProject.MyService" %>

    ·          进到C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools 目录,打开

    Microsoft.VisualStudio.SharePoint.targets 文件,找到TokenReplacementFileExtensions 节点,在后面增加svc到文件扩展列表中。示例如下:

    <TokenReplacementFileExtensions>$(TokenReplacementFileExtensions);xml;aspx;ascx;webpart;dwp;svc </TokenReplacementFileExtensions>

    ·         在sharepoint站点中增加WCF service

          1)打开要部署站点的web.config文件.路径类似如下

         path:C:\inetpub\wwwroot\wss\VirtualDirectories\80\web.config

    2)打开project中的app.config(WCF配置文件),拷贝<system.serviceModel>节点中所有内容,内容类似如下:

    <system.serviceModel>

    <!--the following content need to be copied and pasted into the corresponding element in web.config-->

    <behaviors>

    <serviceBehaviors>

    <behavior name="WCFDeployment.WCFDeploy2SPBehavior">

    <serviceMetadata httpGetEnabled="true" />

    <serviceDebug includeExceptionDetailInFaults="false" />

    </behavior>

    </serviceBehaviors>

    </behaviors>

    <services>

    <service behaviorConfiguration="WCFDeployment.WCFDeploy2SPBehavior"

    name="WCFDeployment.WCFDeploy2SP">

    <endpoint address="" binding="wsHttpBinding" contract="WCFDeployment.IWCFDeploy2SP">

    <identity>

    <dns value="localhost" />

    </identity>

    </endpoint>

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    <host>

    <baseAddresses>

    <add baseAddress="http://localhost:8732/Design_Time_Addresses/WCFDeployment/WCFDeploy2SP/" />

    </baseAddresses>

    </host>

    </service>

    </services>

    <!--copy end-->

    </system.serviceModel>

                3) 在第一步中的web.config中找到 system.serviceModel 节点粘贴第2步中拷贝内容

    ·         在文件中修改baseAddress内容,修改后在web.config文件中内容如下

    <system.serviceModel>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

    <!--add the configured information for WCF service -->

    <behaviors>

    <serviceBehaviors>

    <behavior name="WCFDeployment.WCFDeploy2SPBehavior">

    <serviceMetadata httpGetEnabled="true" />

    <serviceDebug includeExceptionDetailInFaults="false" />

    </behavior>

    </serviceBehaviors>

    </behaviors>

    <services>

    <service behaviorConfiguration="WCFDeployment.WCFDeploy2SPBehavior"

    name="WCFDeployment.WCFDeploy2SP">

    <endpoint address="" binding="wsHttpBinding" contract="WCFDeployment.IWCFDeploy2SP">

    <identity>

    <dns value="localhost" />

    </identity>

    </endpoint>

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    <host>

    <baseAddresses>

    <add baseAddress="http://localhost/_layouts/WCFDeployment/WCFDeploy2SP/" />

    </baseAddresses>

    </host>

    </service>

    </services>

    <!--end-->

    </system.serviceModel>

    ·         保存所有内容后,编译部署

    ·         测试。 打开浏览器,输入:http://localhost/_layouts/WCFDeployment/DeploymentWCF.svc

    问题处理:

    如果不能查看,打开event view,查看错误原因,我在这里罗列自己遇到的2个问题,供参考

    error 1. 有关asp.net compatibility的问题

    解决办法:

    修改WCF的service类加上asp.net compatibility。

    如下:

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

    //[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] -->this is the old. it is replaced by the sectence in above

    public class WCFDeploy2SP : IWCFDeploy2SP

    {...}

    error 2: 有关登录权限的问题,需要enable匿名登录

    打开IIS-->到站点,点击authentication, enable the anonymous authentication.

    出处: http://www.cnblogs.com/windy2008

  • 相关阅读:
    Python学习笔记(11)递归与匿名函数
    Python学习笔记(10)局部变量、全局变量、常量
    Python学习笔记(8)函数、位置参数、可变参数、关键字参数
    Pyhthon学习笔记(7)三元表达式及列表生成式
    Python自动化学习笔记(5)字符串常用的方法
    Python自动化学习(4)列表与字符串的切片操作
    python自动化学习笔记(3)列表list和字典dict
    python自动化学习笔记(2)字符串格式化输出与条件判断及循环语句
    Python自动化学习笔记(1)认识接口测试以及postman、Charles工具简单应用
    《软件测试的艺术》 阅读整理(二)
  • 原文地址:https://www.cnblogs.com/windy2008/p/1963327.html
Copyright © 2011-2022 走看看