Не удается загрузить исключение типа при использовании веб-службы
Я написал мост между моим приложением и веб-сервисами Sharepoint, чтобы вернуть данные в мой проект в полезном формате. Однако, когда любая строка пытается создать новый экземпляр этого класса webServiceBridge, она выдает это исключение.
Could not load type 'SharepointWeb.ShareList' from assembly 'SharepointWeb, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null'.
В данный момент я не ссылаюсь на библиотеки Sharepoint.dll и не использую их, так как это приложение будет внешним по отношению к серверу Sharepoint. Для совместимости с WSS3 проект плагина sharepoint (приложение, которое я пишу) - это.NET 3.5, а "проект инструмента настройки" - это.NET 4.
Все, что делает мой код webFunctions - это берет возвращаемые из веб-сервисов XmlNodes и сортирует их во что-то пригодное для использования В большинстве случаев они возвращаются List<MyObject>
Это единственные веб-методы, которые я использую.
permissionService.GetPermissionCollection
listService.GetList
listService.GetListItems
listService.GetListCollection
siteDataService.GetWeb
Я пробовал добавлять Microsoft.Sharepoint.dll
как ссылка на проект, но это не решило проблему. Но даже если бы это было так, я не понимаю, зачем это нужно.
Вот что сказал Fuslogvw: (Как бы я ни указал, эта ошибка появляется в FuslogVw до вызова вызывающего исключение метода и попытки использовать веб-сервис. Помимо этой ошибки, он пуст!)
* Запись журнала Binder (19/07/2012 @ 14:38:45) *
Операция не удалась. Результат привязки: hr = 0x80070002. Система не может найти указанный файл.
Менеджер сборки загружен из: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll, работающего под исполняемым файлом C: \ Working \ XXXX \ Configuration Tool \ v2.6.0.3 \ ConfigurationTool \ ConfigurationTool \ bin \ Debug
\ ConfigurationTool.vshost.exe --- Ниже приведен подробный журнал ошибок.
=== Информация о состоянии предварительной привязки === LOG: пользователь = ГГГГ \XXXX LOG: DisplayName = msvcm80, версия =8.0.50727.6195, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a (указана полностью) LOG: Appbase = file:///C:/ Рабочая / XXXX / Инструмент конфигурирования /v2.6.0.3/ConfigurationTool/ConfigurationTool/bin/Debug/ LOG: Начальный PrivatePath = NULL LOG: Динамическая база = NULL LOG: База кеша = NULL LOG: AppName = ConfigurationTool.vshost.exe Вызывающая сборка: (Неизвестно). === LOG: эта привязка начинается в контексте загрузки по умолчанию. LOG: Использование файла конфигурации приложения: C: \ Working \ XXXX \ Configuration Tool \ v2.6.0.3 \ ConfigurationTool \ ConfigurationTool \ bin \ Debug
\ ConfigurationTool.vshost.exe.Config LOG: Использование файла конфигурации хоста: LOG: Использование файла конфигурации компьютера из C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: ссылка после политики: msvcm80, версия =8.0.50727.6195, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a LOG: поиск GAC не выполнен. LOG: Попытка загрузки нового файла URL:///C:/Working/XXXX/Configuration
Инструмент /v2.6.0.3/ConfigurationTool/ConfigurationTool/bin/Debug/msvcm80.DLL. LOG: Попытка загрузки нового файла URL:///C:/Working/XXXX/Configuration
Инструмент /v2.6.0.3/ConfigurationTool/ConfigurationTool/bin/Debug/msvcm80/msvcm80.DLL. LOG: Попытка загрузки нового файла URL:///C:/Working/XXXX/Configuration
Инструмент /v2.6.0.3/ConfigurationTool/ConfigurationTool/bin/Debug/msvcm80.EXE. LOG: Попытка загрузки нового файла URL:///C:/Working/XXXX/Configuration
Инструмент /v2.6.0.3/ConfigurationTool/ConfigurationTool/bin/Debug/msvcm80/msvcm80.EXE. Журнал: все зондирующие URL-адреса предприняты и не удалось.
редактировать: добавлен Msvcm80.dll из %Program Files%\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
В FuslogVW нет ошибок, но исключение сохраняется.
Это полный текст исключения, не так много!
System.TypeLoadException был пойман Сообщение = Не удалось загрузить тип 'SharepointWeb.ShareList' из сборки 'SharepointWeb, Версия =2.6.0.0, Культура = Нейтральный, PublicKeyToken = null'.
Source = Sharepoint TypeName = SharepointWeb.ShareList StackTrace: в Sharepoint.FolderBrowser.GrowTree(String siteUrl) в Sharepoint.FolderBrowser..ctor(String siteURL) InnerException:
Где-нибудь еще я могу найти дополнительную информацию, которая может помочь мне диагностировать причину этой проблемы?
2 ответа
Проект, который ссылается на веб-сервисы, должен быть подписан ключом строгого имени. Затем размещается на серверах Sharepoint GAC или Sharepoint web's /bin
каталог.
У меня не было СНК.
Из кода ошибки
0x80070002
похоже, что у вас есть проблема с разрешением. Попробуйте запустить приложение от имени администратора. Также проверьте, что учетная запись относится к группам пользователей, связанных с SP.
Я также вставил Sharepoint.DLL в мою папку отладки, как fuslog, как уже упоминалось, поиск там раньше
обратите внимание, что если сборка сохраняется в GAC, то CLR сначала ее оттуда.