Единственный раз, когда я видел SPContext.Current = null, это когда веб-сервис вызывался из виртуального местоположения, которое не существовало (то есть, URL был только наполовину правильным).
В спецификации вашей проблемы вы упоминаете "_vti_bin / subdir". Я еще не видел эту конструкцию subdir в WebService, размещенном в SharePoint (отказ от ответственности: мои знания ограничены 2 или 3 рабочими реализациями пользовательских веб-сервисов в SharePoint)
Обычно вы бы
- Поместите asmx прямо в папку ISAPI 12 улья. Это отобразится на _vti_bin.
- Поместите сборку, если она есть, в GAC (или в корзину для веб-сайта, но я бы рекомендовал использовать GAC, пока вы не освоите основы)
- Делайте вещи для обнаружения, если вам действительно нужно, но для тестирования это не должно быть необходимо
Возможно, это вообще не связано, но я все же попытался бы заставить все работать сначала из _vti_bin, , а затем , пытаясь связываться с подпапками. Виртуализация URL-адресов в SharePoint может быть болезненной.