FileNotFoundException с конструктором SPSite - PullRequest
22 голосов
/ 05 ноября 2008

Я пытаюсь создать экземпляр SPSite на сервере фермы в настраиваемом процессе (MyApp.exe), и в качестве параметра я указываю весь URI (http://mysite:80/).. Я также убедился, что учетная запись работает MyApp.exe - это Site Collection Administrator.

Однако я не могу сделать экземпляр SPSite, что бы я ни пытался сделать. Это всегда бросает FileNotFoundException.

Кто-нибудь получил идею?

StackTrace:

в Microsoft.SharePoint.SPSite..ctor (SPFarm ферма, Uri requestUri, логическое значение contextSite, SPUserToken userToken)
в Microsoft.SharePoint.SPSite..ctor (String requestUrl) в MyCompanyName.Service.HelperClass.GetItemStateInSharePoint (SharePointItem пункт) в C: \ Workspaces \ MyCompanyName \ Разработка \ Main \ MyCompanyName.SharePoint \ Service \ HelperClass.cs: линии 555

Еще одно примечание ... У меня есть веб-приложение + семейство сайтов, к которому я могу без проблем обращаться через браузер.

Ответы [ 21 ]

1 голос
/ 03 ноября 2011

Вы можете оставить для цели компиляции проекта значение «Любой процессор». Важно это настроить хост-процесс MSTest для работы в 64 битах. Откройте файл .testsettings, перейдите на вкладку «Хосты» и установите «Запускать тесты в 64-битной системе» ...

Если после этого при запуске ваших тестов VS сообщит, что их нет, удалите и снова добавьте свой тестовый проект (я не знаю лучшего обходного пути для этого)

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

1 голос
/ 05 ноября 2008

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

Посмотри у тебя 12 улей на бревно. Если настройки вашего журнала верны, файл пропадет.

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

0 голосов
/ 19 января 2019

У меня была такая же проблема, я внес изменения ниже, и она начала работать.

  1. Изменение цели платформы в visual studio на x64
  2. убедитесь, что вы используете Visual Studio в режиме «Администратор».
0 голосов
/ 10 апреля 2015

В моем случае это определенно была проблема с правами доступа к учетной записи, с которой я вошел в Windows.

Попробуйте эту команду в командной консоли SharePoint, работающей от имени администратора:

Get-SPSite 'http://yoursite/yourcollection'

Если вы получаете ошибки, войдите в систему на сервере SharePoint как пользователь пула приложений или учетная запись, использованная для установки SharePoint, и повторите команду выше.

Если это работает, значит, у вашей предыдущей учетной записи есть проблема с разрешениями. Чтобы устранить проблему, запустите эту команду в том же окне оболочки и укажите учетную запись, которую вы хотите использовать в VS:

Add-SPShellAdmin -UserName Domain \ User

0 голосов
/ 25 ноября 2014

У меня была такая же проблема при попытке доступа к Sharepoint 2010.

Я исправил это, изменив Target Framework на .NET 3.5.- который является поддерживаемой версией для Sharepoint 2010.

0 голосов
/ 20 мая 2014

Переключение на NUnit может не подходить для всех.
В моем случае проблема заключалась в том, что я был на 64-битном сервере, у меня был проверен Любой ЦП (поэтому он выбирал правильную версию), но мои Настройки теста были установлены на «Принудительное выполнение тестов в 32-битном процессе» (GAH! )

В MSTest, перейдите в TEst-> Изменить настройки теста-> Трассировка и влияние теста.
Выберите Хосты.
Убедитесь, что вы используете правильную версию. Here's what you should be picking

Вот мой контрольный список для VS2010 SP1, MSTest.

  • Вам нужен пакет обновления 1, чтобы вы могли ориентировать тесты на .NET 3.5. Это не будет работать с .NET 4.0
  • Убедитесь, что сайт загружается - я запустил сайт прямо из редактора VS2010, так как это гиперссылка
  • Проверьте настройки сборки. Выбрать 64 бит, если сервер 64 бит.
  • В моем случае у меня был 64-битный сервер, но выбрать x64 не удастся! Это была моя первая подсказка.
  • Убедитесь, что настройки теста поддерживают правильные биты.
0 голосов
/ 30 января 2013

Та же проблема в SharePoint 2010. Однако проблема была в нашей веб-службе, которая обращалась к объектной модели SharePoint. Пул приложений, под которым должна работать эта служба, должен быть администратором фермы.

0 голосов
/ 05 ноября 2008

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

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

0 голосов
/ 16 июня 2009

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

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

0 голосов
/ 03 декабря 2009

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

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

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

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