我使用以下代码从sharepoint访问网络应用程序。
SPWebApplication webApplication = SPContext.Current.Site.WebApplication;
它适用于sharepoint server 2010(MOSS2010)。但是,当我使用SharePoint Foundation 2010(WSS4.0)时, SPContext.Current 始终返回null。谁能告诉我这可能是什么原因?我该如何解决这个问题?
谢谢和问候, Sharmila
答案 0 :(得分:4)
我发现SPContext被发现为null的常见原因之一是您的AAM配置不正确。分享点了解为您的站点配置的URL非常重要,因为如果您的URL未注册,则无法判断该URL是否在SPContext内部,因此创建它。
我见过的最常见的变化是修改主机头 IIS站点。这是一个巨大的禁忌,请不要这样做(使用 相反,AAM)。如果你继续修改这些新的 添加的标题只能部分起作用。在SharePoint内部 有很多组件直接依赖于URL和 特别是在内部查看此URL。你找到了什么(为了 开发人员)是对SPContext.Current的引用(一个核心部分 SharePoint善良)将无法正常工作。这会对随机造成严重破坏 SharePoint页面,Web部件和自定义功能。
如果你想知道如何设置AAM(并找出它们如此重要的原因),请看一下这里看看我关于这个主题的博客文章 http://blog.staticvoid.co.nz/2011/05/sharepoint-alternate-access-mappings.html
答案 1 :(得分:0)
构建代码时,是否在SP2010 Server计算机上构建代码,然后将代码部署到Foundation机器上?如果你这样做,我怀疑你需要在Foundation服务器上重建代码,引用Foundation程序集,而不是Server程序集。