惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

博客园 - HollisYao

创建Azure DS 虚拟机并附加SSD硬盘 Azure Site to Site VPN 配置手册 - HollisYao 使用Azure REST API创建虚拟机 SharePoint 2013 地址栏_layouts/15/start.aspx# SharePoint 2013 Workflow Manager 工作流配置注意事项 InfoPath 发布表单到SharePoint库报错 InfoPath发布到SharePoint Server 2013报错 log4net+spring.net+Nhibernate 内部异常捕捉问题 在log4net中控制nhibernate输出 VMWare host 32位 guest 64位 QuickPart Permission问题 ASP.Net 域自动登录(AD自动登录) - HollisYao - 博客园 Feature部署EventHandler注意事项 QuickPart功能改进_Sharepoint_MOSS MOSS/Sharepoint 2007 创建网站集之后,链接出现“未找到文件”错误提示 Apache2.2.8、php5.2.6、mysql5、phpMyAdmin2.11.6在Windows Vista下的安装和配置 Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略 博客园怎么了? 将 MS SQL Server 2005 SP2 整合到安装文件--【脚本修正】
部署WebPart的两种方式
HollisYao · 2009-11-12 · via 博客园 - HollisYao

 主体内容引用自:http://www.cnblogs.com/chenchaospr/archive/2008/04/29/1176631.html,稍作调整

  第一步:部署WebPart的dll文件。

第一种部署方式是部署到bin目录里面,这种方式部署的webpart只能归当前的虚拟服务器使用;

步骤:拷贝dll文件:在打开虚拟服务器的根目录,比如c:\inetpub\www,然后新建一个bin目录,和Sharepoint2003不同,默认的时候bin目录不存在。然后将dll拷贝到bin下。

第二种方式则是部署到GAC里面,这样部署的webpart则可以在所有的虚拟服务器中使用,并且还具有较高的效率。

步骤:直接把dll文件拖到路径“C:\windows\assembly”下,就会自动注册到GAC中了。

  第二步:修改web.config

把WebPart注册为安全控件。比如:<SafeControl Assembly="WebPart1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7a4e03cbe00b6e98" Namespace="WebPart1" TypeName="WebPart1" Safe="True" />

  第三步:有两种方式,

第一种:建立描述文件,自动导入WebPart

描述文件的建立有着很大的学问,在Sharepoint2007中,存在两种webpart的描述文件,一种扩展名为.webpart,另一种扩展名为.dwp,.dwp的使用方法和Sharepoint2003的dwp相同。.dwp的出现主要是为了能够和上一版本兼容,现在建议使用.webpart描述文件。

    描述文件你可以放在两个地方(实际上应该还有第三个地方可放,暂不述),第一个地方是webpart gallery,第二个地方是虚拟服务器根目录下的wpcatalog目录。.dwp和.webpart两种文件的使用方法完全一样。

    当加入到wpcatalog时,需要重启一下应用(随便修改一下web.config就可以重启应用)。当重启应用后,Sharepoint2007会读取wpcatalog中的文件,然后加载到内存以供我们选择。这时webpart就部署好了。这种方式的最大问题是你必须自己写描述文件,而不能自动生成(通过工具WSPBuilder会自动生成)。

第二种方式放在webpart gallery中

这是sharepoint2007内置的一个文档库,放在这里面的一个好处是不用重启应用,当你将描述文件加入到这里面是,你就可以直接在添加webpart的列表中看到新增加的webpart了。除了手工的上传.dwp或者.webpart描述文件到webpart gallery中,还可以自动生成。自动生成取决于两个条件,第一个是你的dll已经拷贝到正确的位置,第二个是web.config中已经加入了描述,缺一不可。当这两个条件满足后,选择webpart gallery上的New按钮,就会列出你新部署的webpart。webpart gallery的位置在主页的action下来菜单中,选择Site Settings -> Modify All Settings,然后选择webpart,就会进入到webpart gallary。

    

    选中后,点击上面的Populate Gallery按钮,就会把自动生成的描述文件添加到webpart gallery中。

    

    这里要注意的是,如果你的dll是sharepoint2003的webpart(也即.NET1.1的程序集),会自动生成.dwp描述文件。如果你是.NET2.0的程序集,也即Sharepoint2007的webpart,则会生成.webpart描述文件。

    另外一个问题,即强签名的程序集,如果你要部署到GAC中,则只要把dll拷贝到GAC里面即可,其它步骤都相同,不同的仅仅是dll放的位置。当你要放入到GAC中时,你必须对程序集进行签名,也即制作一个强签名程序集。使用sn -k outfile来生成key。但是如果你把强签名的程序集放入到bin目录中而不是放入到GAC里面的时候,你有时就会发现出现这么一个对话框:

    

    这是因为程序集被安装在了一个被部分信任的区域,如何解决这一个问题呢?有两个方法,一是使用dwp文件描述,当你使用dwp文件描述的时候,无论dwp文件在webpart gallery中还是在wpcatalog中,都不会有这个对话框出现,webpart可以正常使用。第二种则是对程序集进行一个声明,在AssemblyInfo.cs文件中加上一句“[assembly: System.Security.AllowPartiallyTrustedCallers()]”,然后使用.webpart描述文件就没有问题了,无论这个文件放在webpart gallery中还是wpcatalog中,所以这个声明也仅对.webpart的描述文件才有效。这里你还会发现一个有趣的现象,当你使用了强签名后,无论是自动生成的.webpart文件还是直接上传到webpart gallery中的.webpart文件,里面的PublicKeyToken都会变成null,这点很奇怪。我也没有想明白是怎么回事,但是这个不影响webpart的使用。

    另外还有一点要注意的是,当部署到GAC里面的时候,在webpart gallery中New的时候,无法自动生成.webpart文件,所以需要手写。在你下载的sample里面,包含了所有的代码及.dwp和.webpart的描述文件各一个以供参考。部署完的webpart应该是这个样子: