SPSite в Visual Studio 2010
Так что вместо того, чтобы биться головой о стену в течение еще нескольких часов, я подумал, что я просто дважды проверю несколько вещей здесь.
Прежде всего, я пытался получить доступ к спискам, хранящимся на сервере SharePoint 2007 (который я должен начать с того, что говорю, что это вне моего контроля, за исключением того факта, что я являюсь его членом, который может редактировать информацию о списках) через Visual Studio 2010 на 64-битном компьютере под управлением Windows 7 (который никак не связан с сервером). Я говорю из-за моего контроля, потому что а) приложение, которое я пишу, не может быть сохранено на сервере, и б) я не могу перенастроить какую-либо часть сервера (так как это, конечно, вне моего контроля и тому подобное)...)
Я начал с использования веб-сервисов для чтения списочных элементов из определенного списка, который работал (в определенной степени). Я больше не мог проводить тестирование, потому что было немедленно рекомендовано прекратить использование этого метода и вместо этого попробовать использовать SharePoint. собственные сервисы (например, с помощью Microsoft.Sharepoint и соответствующих.dll в моем проекте.) Я нашел множество учебных пособий о том, как делать это онлайн, но я продолжаю зацикливаться на одной части, а именно на части SPSite.
Я знаю, что этот вопрос поднимался десятки раз, но я просто не могу быть уверен, что именно мне нужно контролировать, чтобы это работало. При достижении этой строки кода:
SPSite siteCollection = new SPSite(siteUrl);
это терпит неудачу каждый раз. (Обратите внимание, что siteUrl - это строка, которая приводит к рабочему URL-адресу сервера, который работал с веб-службами, поэтому я не понимаю, почему он не будет работать сейчас.)
Я протестировал несколько.Net Frameworks (3.5, 4.0...) и изменил свою архитектуру с x86 на x64 на Any CPU, и он все еще всегда дает сбой. Теперь мне нужны учетные данные, чтобы попасть на этот сайт, поэтому я предполагаю, что поэтому я не могу получить к нему доступ. Есть ли какие-то учетные данные, которые мне нужно связать с моей программой, чтобы заставить это работать? Или он попросит их, если он успешно зашел на этот сайт?
Извините за всю эту путаницу, мой разум просто таял от попыток поглотить все это так быстро.
(На небольшом примечании, является ли требование.Net Framework строгим в 3.5? Потому что это приложение Microsoft Surface, а это значит, что ему нужно минимум 4.0...):P
2 ответа
Объектную модель на стороне сервера SharePoint, которую вы рекомендовали использовать, нельзя использовать в вашем сценарии. Он работает только при запуске на сервере, который является частью фермы SharePoint (чего в этом сценарии не будет). Поскольку вы работаете в 2007 году (без объектной модели клиента), вы застряли с веб-сервисами (или пишете и развертываете свой собственный код веб-службы на сервере в ферме SharePoint, которую затем вызывает ваш код).
Этот код работает в том же пуле приложений, что и веб-сайт SharePoint? Если нет, то вам проще всего использовать службу списков (/_vti_bin/Lists.asmx). В SharePoint 2010 добавлена клиентская объектная модель, но, очевидно, вы исключены из этого. Пример кода можно найти здесь.