我有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是不正确的。
我究竟做错了什么?如何获得正确的上下文?
最佳答案
您可以仔细检查一下您是否真的在调用http://sp2010/site/_vti_bin/WcfService.svc/mex
吗?使用“Visual Studio添加服务引用”对话框时,通常使用根目录,如http://sp2010/_vti_bin/WcfService.svc/mex
所示。
如果您使用代码进行设置,则它确实应该可以工作,至少对我来说是这样的:(
什么是SPContext.Current.Web.Url
和Web.ID
?是否与/site/网站匹配?
关于wcf - Wcf服务中错误的SPContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6792194/