SharePoint中使用SilverLight的注意事项及SilverLight显示空白的解决方法
2009-07-23 17:11
751 查看
练习了一下在SharePoint站点中使用SilverLight的使用。
方法当然是创建一个WebPart,然后在其中承载System.Web.UI.SilverlightControls下的Silverlight控件。
但是,说起来虽然简单,但是还是折腾了我一些时间:
----
首先,需要将Silverlight程序中产生的xap文件拷贝到您的sp站点可以访问到的地方。
然后创建一个webpart,在其中创建Silverlight的实例对象,然后为其指定Source="****.xap"
特别注意的是,SilverLight的运行需要ScriptManager的支持。
在我练习的过程中,主要遇到的问题是web.config文件对sl的支持,及相关MIME头的添加。
--web.cofig添加对sl的支持:
1、在原文件的configSections中添加一段sectionGroup,如下:
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
2、在system.web的httpHanders和httpModules节结束处分别加入如下:
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<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" />
<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" />
<add name="PublishingHttpModule" type="Microsoft.SharePoint.Publishing.PublishingHttpModule, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
3、在compliation的assemblies节中加入如下:
<!--如果您的是3.5的NET Framework的话,可能还需要加上如下:
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
-->
<add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />4、如果是在IIS7中的话,需要加上如下:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<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" />
<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" />
<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" />
</handlers>
<security>
<authorization>
<add accessType="Allow" users="" />
<add accessType="Allow" users="?" />
</authorization>
</security>
</system.webServer>
--经过上述处理,应该就可以完成SP中支持SL了。
特别提醒 :如果您是网上找的web.config模板的话,特别注意其中的machineKey这个节点,把它改成您原来config值,不然的话,连您的sp站点都挂了。
---
接下来的事,就加入承载Silverlight的webpart享受了~~~~
zzzzzzzzzzzzzzzzzzzzzz
但是:您还有可能碰到这个情况:
在SL区域点右键已经可以看到silverlight的runtime信息了,可是这个区域却是一片空白??
原因就在于Silverlight中需要使用xap、XAML文件类型
所以必须在IIS中注册xaml和xap的MIME文件类型。打开IIS->站点属性->HTTP头->MIME类型->新建:
扩展名: .xap
MIME类型:xapapplication/x-silverlight
扩展名: .xaml
MIME类型:application/xaml+xml
---
最后在啰嗦一下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等的注册。
---- enjoy your SilverLight+SharePoint~~~~
原创,转载请保留地址:http://www.cnblogs.com/mcjeremy
方法当然是创建一个WebPart,然后在其中承载System.Web.UI.SilverlightControls下的Silverlight控件。
但是,说起来虽然简单,但是还是折腾了我一些时间:
----
首先,需要将Silverlight程序中产生的xap文件拷贝到您的sp站点可以访问到的地方。
然后创建一个webpart,在其中创建Silverlight的实例对象,然后为其指定Source="****.xap"
特别注意的是,SilverLight的运行需要ScriptManager的支持。
在我练习的过程中,主要遇到的问题是web.config文件对sl的支持,及相关MIME头的添加。
--web.cofig添加对sl的支持:
1、在原文件的configSections中添加一段sectionGroup,如下:
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
2、在system.web的httpHanders和httpModules节结束处分别加入如下:
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<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" />
<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" />
<add name="PublishingHttpModule" type="Microsoft.SharePoint.Publishing.PublishingHttpModule, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
3、在compliation的assemblies节中加入如下:
<!--如果您的是3.5的NET Framework的话,可能还需要加上如下:
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
-->
<add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />4、如果是在IIS7中的话,需要加上如下:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<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" />
<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" />
<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" />
</handlers>
<security>
<authorization>
<add accessType="Allow" users="" />
<add accessType="Allow" users="?" />
</authorization>
</security>
</system.webServer>
--经过上述处理,应该就可以完成SP中支持SL了。
特别提醒 :如果您是网上找的web.config模板的话,特别注意其中的machineKey这个节点,把它改成您原来config值,不然的话,连您的sp站点都挂了。
---
接下来的事,就加入承载Silverlight的webpart享受了~~~~
zzzzzzzzzzzzzzzzzzzzzz
但是:您还有可能碰到这个情况:
在SL区域点右键已经可以看到silverlight的runtime信息了,可是这个区域却是一片空白??
原因就在于Silverlight中需要使用xap、XAML文件类型
所以必须在IIS中注册xaml和xap的MIME文件类型。打开IIS->站点属性->HTTP头->MIME类型->新建:
扩展名: .xap
MIME类型:xapapplication/x-silverlight
扩展名: .xaml
MIME类型:application/xaml+xml
---
最后在啰嗦一下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等的注册。
---- enjoy your SilverLight+SharePoint~~~~
原创,转载请保留地址:http://www.cnblogs.com/mcjeremy
相关文章推荐
- 几条在SharePoint中使用SilverLight注意事项
- 使用 MPMoviePlayerController 出现的问题、解决方法和注意事项
- 使用eclipse 开发 嵌入式Linux驱动(注意事项)(make:***没有规则可言创建目标"all".停止 的解决方法)
- Fedora 字体发虚的解决方法,粗体显示及美化注意事项
- Android Studio3.0升级后使用注意事项及解决方法
- 关于打包自定义标签,并导入项目使用时,出现java.lang.NoClassDefFoundError: JspException异常,解决方法和注意事项!
- 使用SPView时的注意事项和问题,及解决方法?
- mac下svn使用注意事项及冲突解决方法
- ubuntu下安装使用MySQL的一些注意事项(远程无法连接解决方法)
- iOS ARC使用时注意事项以及报错解决方法
- 解决使用沉浸式状态栏后Toast不显示在中间的方法
- 关于Vue.js 使用v-cloak后仍显示变量的解决方法
- win8使用every'thing无法显示搜索结果的解决方法
- trim()方法在js中的使用注意事项
- 关于CSS中内层使用float导致外层的背景无法显示的问题的解决方法
- 添加/删除程序空白窗口及控制面板窗口显示异常问题的解决方法
- 解决关于登录校园网显示不在IP段的问题方案(要看注意事项哦!)
- wm命令使用方法及LCD显示图标大小不正常时解决办法
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- java的wait()方法使用注意事项