我有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.UrlWeb.ID?是否与/site/网站匹配?

关于wcf - Wcf服务中错误的SPContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6792194/

10-10 12:35