Wcf 服务中的 SPContext 错误

发布于 2024-11-25 12:45:20 字数 479 浏览 2 评论 0原文

我有 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 是不正确的。

我做错了什么?我怎样才能获得正确的上下文?

I have SharePoint 2010 (_http://sp2010/, for instance). I have created site (_http://sp2010/site/) and WCF Service, which is hosted in ISAPI folder. In service I have such test method:

[OperationContract]
public string GetCurrentWebUrl()
{
    return SPContext.Current.Site.Url + " | " + SPContext.Current.Web.Url;
}

I call service from my console application using this address - _http://sp2010/site/_vti_bin/WcfService.svc/mex. When calling method GetCurrentWebUrl I expect to get _http://sp2010/site/, but I always get _http://sp2010/. In other words SPContext is not correct.

What am I doing wrong? How can I get right context?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不在是我 2024-12-02 12:45:20

您能否仔细检查您是否确实在调用http://sp2010/site/_vti_bin/WcfService.svc/mex?使用 Visual Studio“添加服务引用”对话框时,通常使用根目录,如 http://sp2010/_vti_bin/WcfService.svc/mex 中。

如果您在代码中设置它,它确实应该可以工作,至少对我来说是这样:(

什么是 SPContext.Current.Web.UrlWeb.ID?与 /site/ Web 匹配吗?

Can you double check that you are really calling http://sp2010/site/_vti_bin/WcfService.svc/mex? When using the Visual Studio Add Service Reference dialog, it usually uses the root, as in http://sp2010/_vti_bin/WcfService.svc/mex.

If you are setting it up in code it should indeed work, at least it does for me :(

What is SPContext.Current.Web.Url and Web.ID? Does that match the /site/ Web?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文