SPContext.Current является нулевым в веб-сервисе на сайте sharepoint - PullRequest
5 голосов
/ 17 февраля 2010

Я предоставляю доступ к веб-службе на сайте SharePoint, например http://server/_vti_bin/subdir/mywebservice.asmx.

В методе веб-службы SPContext.Current представляется нулевым.

(Интересно, я смотрю на пример в главе 5 Внутри Windows SharePoint Services 3.0 , и они используют SPContext.Current внутри веб-службы!)

Есть идеи, что мне не хватает? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 17 февраля 2010

Единственный раз, когда я видел SPContext.Current = null, это когда веб-сервис вызывался из виртуального местоположения, которое не существовало (то есть, URL был только наполовину правильным).

В спецификации вашей проблемы вы упоминаете "_vti_bin / subdir". Я еще не видел эту конструкцию subdir в WebService, размещенном в SharePoint (отказ от ответственности: мои знания ограничены 2 или 3 рабочими реализациями пользовательских веб-сервисов в SharePoint)

Обычно вы бы

  • Поместите asmx прямо в папку ISAPI 12 улья. Это отобразится на _vti_bin.
  • Поместите сборку, если она есть, в GAC (или в корзину для веб-сайта, но я бы рекомендовал использовать GAC, пока вы не освоите основы)
  • Делайте вещи для обнаружения, если вам действительно нужно, но для тестирования это не должно быть необходимо

Возможно, это вообще не связано, но я все же попытался бы заставить все работать сначала из _vti_bin, , а затем , пытаясь связываться с подпапками. Виртуализация URL-адресов в SharePoint может быть болезненной.

0 голосов
/ 18 февраля 2010

Как вы звоните в веб-сервис? Это вызов ajax из javascript / jquery? Если да, добавили ли вы атрибут ScriptService в класс веб-службы?

[System.Web.Scripts.Services.ScriptService]
public class SimpleWebService : System.Web.Services.WebService
{
    ...
    ...
}
0 голосов
/ 17 февраля 2010

Возможно ли, что ваш подкаталог настроен как веб-приложение и поэтому работает в другом контексте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...