FileNotFoundException с конструктором SPSite

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

22
задан Maxime Rouiller 22 February 2016 в 14:14
поделиться

10 ответов

FileNotFoundException брошен SharePoint, когда это не может найти требуемый набор сайта в базе данных конфигурации SharePoint. Мое предположение - то, что Вы еще не создали набор сайта на URL http://mysite:80. Я вижу следующее отслеживание стека, если я пытаюсь инстанцировать нового объекта SPSite с URL несуществующего набора сайта:

System.IO.FileNotFoundException : The site http://server/sites/bah could not be found in the Web application SPWebApplication 
Name=SharePoint - 80 Parent=SPWebService.
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(String requestUrl)

Определяют надлежащий URL Вашего набора сайта или открывают Central Administration и создают новый Набор Сайта.

14
ответ дан Lars Fastrup 29 November 2019 в 04:12
поделиться

Я недавно обнаружил, что этой проблемой с конструктором может быть причина странным поведением конструктора.
я занимаю о MOSS 2007. То, когда Вы передаете полный URL сайта конструктору, что это, кажется, делает, должно действительно рассмотреть только часть сайта URL, выбрав веб-приложение, которое является 'в настоящее время seleced' в управлении селектором веб-приложения.
Таким образом, например, когда Вы имеете" http://webapp/sites/site " и имеете" http://weabapp:22345 " в настоящее время выбираемый (в прошлый раз Вы выбрали его в таком селекторе), когда Вы звоните

SPSite site = new SPSite("http://webapp/sites/site")

, Это пытается на самом деле создать объект сайта для" http://webapp:22345/sites/site " и сбои.

1
ответ дан axk 29 November 2019 в 04:12
поделиться

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

решение моей проблемы состояло в том, чтобы зарегистрировать SharePoint 12.0.0.0 блока в GAC. Это не кажется, что совпадает с Вашей проблемой, но просто к вашему сведению.

0
ответ дан slf 29 November 2019 в 04:12
поделиться

Проверьте свой web.config и посмотрите, существует ли конфигурация там с отсутствием файла.

Взгляд в Вас 12 ульев для журнала. Если Ваши настройки журнала будут корректны, Вы получите пропавших без вести файла.

РЕДАКТИРОВАНИЕ: Проверьте также, если ВЕСЬ Ваш DLL находится в GAC. Проверьте, содержит ли Ваш web.config файл всю информацию: пространство имен, Имя класса, NameSpace, Version=version_number, Культура-your_culture, PublicKeyToken=your_signed_token

1
ответ дан vIceBerg 29 November 2019 в 04:12
поделиться

Stacktrace исключения был бы полезен.

я думаю, что возможно можно получить некоторое представление, какого файла это и что происходит путем отключения "просто моего кода" в инструментах-> опции-> отладка и рассмотрение аргумента имени файла в стеке вызовов исключения, когда отладчик показывает его (если можно отладить его, конечно), или возможно имя обнаруживается в сообщении об исключении.

1
ответ дан axk 29 November 2019 в 04:12
поделиться

Также возможно, что объектной модели не нравится URL, который Вы даете ему. Если Вы не предоставляете ему или точный URL, в котором Вы создали набор сайта или точный URL, перечисленный в Вашем, настроен в Ваших Альтернативных Отображениях Доступа, это выдаст исключение, которое не могло бы обязательно иметь смысла. В Вашем случае Вы могли бы попробовать http://mysite или http://machinename.

2
ответ дан Abs 29 November 2019 в 04:12
поделиться

Мы столкнулись с той же проблемой несколько дней назад, и решение состояло в том, чтобы настроить приложение, которое пытается создать объект de SPSite, на использование того же пула приложений, что и веб-приложение Sharepoint.

Надеюсь, это поможет.

0
ответ дан 29 November 2019 в 04:12
поделиться

Прочтите этот сайт http://community.bamboosolutions.com/forums/t/8179.aspx , если вы работаете с 64-разрядной версией ОС и используете MSTest (32-разрядную версию), произойдет сбой, используйте nunit, работает !!!

10
ответ дан 29 November 2019 в 04:12
поделиться

Проблема с MSTest на x64 была для меня причиной этой проблемы. Работает в консольном приложении.

0
ответ дан 29 November 2019 в 04:12
поделиться

У меня такая же проблема.

В моем сценарии я смог создать экземпляр SPSite из консольного приложения, но когда другой товарищ по команде попытался это сделать, приложение вызвало такое же исключение, как упомянуто выше.

Решение: я добавил другого товарища по команде в качестве администратора на сервер Content Db (это возможно не для всех), код работает нормально и без ошибок

0
ответ дан 29 November 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: