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 имеет приоритет.

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

Другие вопросы по тегам