创建WebSite或WebApplication来直接使用SharePoint的上下文

创建WebSite或WebApplication来直接使用SharePoint的上下文

 http://www.cnblogs.com/fxwdl/archive/2010/02/02/1661668.html

在开发SharePoint的应用时,有时候需要直接在_layout下面创建文件系统的自定义页面,以实现特殊的一些需求,例如需要所有的网站都可以调用的页面和只使用SharePoint的对象模型而不想使用SharePoint将页面存储到DB中的方式等.这时,我们可以创建自定义的应用程序并将页面部署到网站的_layout目录下面.

创建这样的应用,在创建相应的项目的时候,有两种选择:

  1. WebSite
  2. WebApplication

对于这两种不同的项目类型的区别,在这里就不说了,通过Google就可以查到.下面分别尝试基于这两种方式来创建项目,并配置使可以调试.

创建WebSite

打开VS,新建网站,”位置”中可以使用Http或文件,只要保证其是创建在_layout目录下即可.

然后对SharePoint的Dll进行引用,在Page_load中编写Reponse.Write(SpContext.Current.Site.Url);用以测试是否可以调用上下文对象.

 

创建WebApplication

在VS中创建WebApplication的项目,然后同样做上面的测试,将WebApplication的项目的”生成”的输出位置指定到整个SharePoint的应用程序的的Bin目录下(不是_layout),然后修改web.config中的<trust level=”Full”/>.

以上两种方式创建的项目,都不能在VS直接按F5进行调试,都是需要用VS附加到W3Wp进程,通过在IIS中直接浏览到相应的网页而触发断点.

总结

 

WebSite的方式中,其动态生成的Dll并没有通过web.config修改信任级别,也没有把其生成的dll放到Bin中,更没有部署到GAC中,但确可以正确运行,怀疑是Asp.net对其存放动态生成的Dll位置有某些特殊的设置,而WebApplication确需要经过修改项目生成的位置和Web.config来使其正确运行.但无论哪种方式,在最终发布到生成或者集成环境时,都需要将项目生成的Dll要么放到Bin中并修改web.config的中的信任级别,要么进行强名签名并部署到GAC中(WebSite方式的Dll可能通过在VS右击项目,在右键菜单中选择"发布网站”来生成).

一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。
 
分类: SharePoint
 
好文要顶 关注我 收藏该文 
0
0
 
 
 
« 上一篇:DataView Web Part参数与过滤查询
» 下一篇:SharePoint中那些XML配置文件的关系

 

 

uyj

posted @ 2017-10-30 19:16  sky20080101  阅读(109)  评论(0)    收藏  举报