Wcf 服务中的 SPContext 错误
我有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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 匹配吗?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 inhttp://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
andWeb.ID
? Does that match the /site/ Web?