创建WebSite或WebApplication来直接使用SharePoint的上下文
创建WebSite或WebApplication来直接使用SharePoint的上下文
在开发SharePoint的应用时,有时候需要直接在_layout下面创建文件系统的自定义页面,以实现特殊的一些需求,例如需要所有的网站都可以调用的页面和只使用SharePoint的对象模型而不想使用SharePoint将页面存储到DB中的方式等.这时,我们可以创建自定义的应用程序并将页面部署到网站的_layout目录下面.
创建这样的应用,在创建相应的项目的时候,有两种选择:
- WebSite
- 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右击项目,在右键菜单中选择"发布网站”来生成).
uyj



浙公网安备 33010602011771号