我有SharePoint 2010(例如_http:// sp2010 /)。我创建了站点(_http:// sp2010 / site /)和WCF服务,它位于ISAPI文件夹中。在服务中我有这样的测试方法:
[OperationContract]
public string GetCurrentWebUrl()
{
return SPContext.Current.Site.Url + " | " + SPContext.Current.Web.Url;
}
我使用此地址从我的控制台应用程序调用服务 - _http://sp2010/site/_vti_bin/WcfService.svc/mex。当调用方法GetCurrentWebUrl时,我希望得到_http:// sp2010 / site /,但我总是得到_http:// sp2010 /。换句话说,SPContext不正确。
我做错了什么?我怎样才能获得正确的背景?
答案 0 :(得分:1)
你能仔细检查一下你是否真的在呼叫http://sp2010/site/_vti_bin/WcfService.svc/mex
吗?使用Visual Studio“添加服务引用”对话框时,它通常使用根,如http://sp2010/_vti_bin/WcfService.svc/mex
。
如果你在代码中设置它应该确实有效,至少它对我有用:(
什么是SPContext.Current.Web.Url
和Web.ID
?这与/ site / Web匹配吗?