WSPBuilder и код для главной страницы Sharepoint
Я создал код для файла для пользовательской главной страницы в Visual Studio. Я подключил все вручную; безопасный контроль и таможенная политика. Все отлично работает!
Затем я хотел поместить это в решение sharepoint с использованием WSPBuilder для лучшего развертывания. Я создал решение WSP, добавил свой файл класса и изменил выходной каталог на папку bin. Затем я построил решение и развернул его, убедившись, что директивы страницы на главной странице изменились, чтобы отразить новое имя сборки.
Теперь, когда я захожу на сайт sharepoint, я получаю сообщение об ошибке "Исключение безопасности".
"Сведения об исключении: System.Security.SecurityException: эта сборка не допускает частично доверенных вызывающих".
Это поставило меня в тупик, так как он работает как файл класса Visual Studio, развернутый в каталоге bin сайта. Однако, когда я помещаю это в решение sharepoint, оно ломается! Я пытался добавить
'[Assembly: System.Security.AllowPartiallyTrustedCallers]'
в AssemblyInfo.cs, но это не помогло.
Кто-нибудь еще испытал это или есть какой-нибудь совет?
РЕДАКТИРОВАТЬ: я должен также упомянуть, что код пытается получить доступ к списку sharepoint.
5 ответов
Вам не нужно включать запись SafeControls, чтобы она работала, например:
<SafeControl Assembly="[FullAssembly Name]"
Namespace="[YourMasterPageNamespace]"
TypeName="*"
Safe="True" />
или в конфиге WSPBuilder:
<add key="BuildSafeControls" value="True" />
Никогда не видел этого... но я подозреваю, что не многие люди создали кодовые шторы для главных страниц в SharePoint (Microsoft не делает этого!).
Я не знаю, что вы пытаетесь создать, но я бы, вероятно, реализовал это с помощью серверного элемента управления, который включен в главную страницу.
AllowPartiallyTrustedCallers всегда исправлял это для моих серверных элементов управления.
Какое доверие установлено в вашем файле web.config? Попробуйте Full.
Вы звоните сторонней сборке?
Недавно я столкнулся с ситуацией, когда использовал стороннюю сборку, и в ее коде не было AllowPartiallyTrustedCallers. Когда я попытался использовать ассемблер, он потерпел неудачу.
Вы уверены, что сборка была случайно развернута в bin, а нет - в GAC? Если есть две сборки, то одна в GAC имеет приоритет.
Вы можете попробовать проверить, что используете полное имя из пяти частей, включая правильный токен открытого ключа и пространство имен для ваших сборок.