zoukankan      html  css  js  c++  java
  • 几条在SharePoint中使用SilverLight注意事项

    练习了一下在SharePoint站点中使用SilverLight,方法当然是创建一个WebPart,然后在其中承载System.Web.UI.SilverlightControls下的Silverlight控件。不过这里面也有不少SilverLight注意事项。

    AD: 51CTO云计算架构师峰会 抢票进行中!

    在SharePoint中使用SilverLight,说起来虽然简单,但是还是折腾了我一些时间:

    在SharePoint中使用SilverLight注意事项

    首先,需要将Silverlight程序中产生的xap文件拷贝到您的sp站点可以访问到的地方。然后创建一个webpart,在其中创建Silverlight的实例对象,然后为其指定Source="****.xap"特别注意的是,SilverLight的运行需要ScriptManager的支持。

    在我练习的过程中,主要遇到的问题是web.config文件对sl的支持,及相关MIME头的添加。

    --web.cofig添加对sl的支持:

    1、在原文件的configSections中添加一段sectionGroup,如下:

    1. <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    2.       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    3.         <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
    4.         <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    5.           <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" /> 
    6.           <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
    7.           <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
    8.           <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
    9.         </sectionGroup> 
    10.       </sectionGroup> 
    11.     </sectionGroup> 

    2、在system.web的httpHanders和httpModules节结束处分别加入如下:

    1. <remove verb="*" path="*.asmx" /> 
    2.       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    3.       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    4.       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
    5.  <add name="PublishingHttpModule" type="Microsoft.SharePoint.Publishing.PublishingHttpModule, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> 

    3、在compliation的assemblies节中加入如下:

    1. <!--如果您的是3.5的NET Framework的话,可能还需要加上如下:  
    2.         <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    3.         <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    4.         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    5.         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    6.         --> 
    7.         <add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

    4、如果是在IIS7中的话,需要加上如下:

    1. <system.webServer> 
    2.     <validation validateIntegratedModeConfiguration="false" /> 
    3.     <modules> 
    4.       <remove name="ScriptModule" /> 
    5.       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    6.     </modules> 
    7.     <handlers> 
    8.       <remove name="WebServiceHandlerFactory-Integrated" /> 
    9.       <remove name="ScriptHandlerFactory" /> 
    10.       <remove name="ScriptHandlerFactoryAppServices" /> 
    11.       <remove name="ScriptResource" /> 
    12.       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    13.       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    14.       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    15.     </handlers> 
    16.     <security> 
    17.       <authorization> 
    18.         <add accessType="Allow" users="" /> 
    19.         <add accessType="Allow" users="?" /> 
    20.       </authorization> 
    21.     </security> 
    22.   </system.webServer> 

    --经过上述处理,应该就可以完成SP中支持SL了。

    特别提醒在SharePoint中使用SilverLight注意事项:如果您是网上找的web.config模板的话,特别注意其中的machineKey这个节点,把它改成您原来config值,不然的话,连您的sp站点都挂了。
    ---

    接下来的事,就加入承载Silverlight的webpart享受了~~~~

    但是:您还有可能碰到这个情况:在SL区域点右键已经可以看到silverlight的runtime信息了,可是这个区域却是一片空白??

    原因就在于Silverlight中需要使用xap、XAML文件类型

    所以必须在IIS中注册xaml和xap的MIME文件类型。打开IIS->站点属性->HTTP头->MIME类型->新建:

    扩展名: .xap

    MIME类型:xapapplication/x-silverlight

    扩展名: .xaml

    MIME类型:application/xaml+xml

    ---
    在SharePoint中使用SilverLight注意事项:最后在啰嗦一下web.config

    其中,在vs08中创建sl-application的时候,就会提示您是否创建host站点。选择创建后,看看它的web.config有哪些是运行sl需要的,把它copy到sharepoint的web.config对应位置即可。

    在SilverLight程序中,最好不要使用到.NET 3.5下相关的技术,比如linq等,因为.net20(SharePoint07运行在.net20下)不支持这些东东。

    复制相关的web.config节的时候,去除.net3.5下的东东即可。还有一个不需要复制的,就是pages节点下的<controls>关于asp:SilverLight等的注册。

  • 相关阅读:
    列出九宫格输入组合
    判断是否平衡二叉树
    Jetson tx2的tensorflow keras环境搭建
    TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
    python时间序列画图plot总结
    pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot
    yolov3实践(二)
    yolov3实践(一)
    USB摄像头无法正常读取问题
    tensorflow神经网络拟合非线性函数与操作指南
  • 原文地址:https://www.cnblogs.com/Areas/p/2715212.html
Copyright © 2011-2022 走看看