Развертывание пользовательских приложений Asp.net на том же сайте IIS, что и Sharepoint - PullRequest
2 голосов
/ 14 марта 2009

Я пытаюсь настроить приложение Asp.net на том же сайте, что и Sharepoint. Поэтому, где http://sharepointurl - это URL-адрес для sharepoint, для доступа к приложению URL-адрес будет http://sharepointurl/MyCustomWebApp/.. Я настроил приложение IIS на этом уровне, но пытался запустить приложение с пользовательской библиотекой DLL в корзине. приводит к ошибке

«Запрос разрешения типа« Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version = 12.0.0.0, Culture = нейтральный, PublicKeyToken = 71e9bce111e9429c »не выполнен. "

Я попытался подписать dll и зарегистрировать его на серверах sharepoint GAC, но затем получил:

«Исключение System.Security.SecurityException: эта сборка не допускает частично доверенных вызывающих абонентов».

Если я удаляю DLL из каталога bin приложения, страница загружается, но я теряю нужную мне функциональность.

Редактировать: ошибка происходит, только если Dll находится в корзине, это не зависит от какой-либо одной строки кода в Dll.

IIS версия 6 Sharepoint: WSS 3.0 Windows Server 2003

Обновление: я запустил "caspol -machine -addfulltrust (путь к dll)", и это успешно, но я все еще получаю ту же ошибку.

Ответы [ 5 ]

1 голос
/ 17 марта 2009

Я наконец-то решил это. Я думаю, что часть этого была решена с помощью сочетания различных попыток, предложенных людьми, но, в конечном счете, исправлено добавление "" в web.config. Для тех, кто не знает, следует перейти в раздел system.web. Мне также нужно было добавить несколько DLL. Добавление DLL в GAC помогло, но не решило все проблемы.

0 голосов
/ 16 марта 2009

Включает безопасность .NET. Есть два способа решить эту проблему, и оба включают добавление «Полного доверия» на ваш сайт SharePoint. Причина в том, что SharePoint и ваше приложение не имеют доступа к ресурсам друг друга.

  1. Ручной способ : Добавьте «Полное доверие» в файл machine.config или в файл web.config в корне папки вашего веб-сайта IIS (обычно это «wwwroot»). Это может быть плохой идеей, поскольку она дает полное доверие каждому приложению ASP.NET, которое вы запускаете параллельно с SharePoint. Это кратковременное сложное исправление, аналогичное решению всех проблем безопасности кода с использованием доступа администратора.

  2. Автоматизированный способ : Запустите caspol (Code Security Security Tool) для вашей прикладной библиотеки DLL. Это немного сложнее, потому что требует, чтобы вы сделали то же самое для нескольких папок и библиотек DLL. Но это самый безопасный способ выполнить то, что вы пытаетесь сделать.

0 голосов
/ 14 марта 2009
0 голосов
/ 16 марта 2009

Добавьте управляемый путь исключения в SharePoint, чтобы он не пытался «вмешиваться» в пользовательское веб-приложение.

0 голосов
/ 14 марта 2009

Когда вы используете веб-сайт IIS в SharePoint (называемый веб-приложением в SharePoint), ваше приложение ASP.NET уже не просто приложение ASP.NET. Это приложение SharePoint (конечно, SharePoint работает на ASP.NET). То есть, если вы не копаетесь в своем файле web.config, чтобы отменить множество http-обработчиков, которые SharePoint устанавливает для вашего конкретного виртуального каталога.

Однако нет ничего плохого в переводе приложения ASP.NET для работы в SharePoint. Помещение ваших сборок / сборок в GAC - это шаг, который может помочь, но, похоже, вам это не удалось. Может ли ваша сборка ссылаться на другие сборки, которых нет в GAC? Это может быть вашей проблемой.

Если ваша сборка не находится в GAC, вы можете использовать ее со страницами ASP.NET и веб-частями в SharePoint (но не с рабочими процессами, обработчиками событий, настраиваемыми полями, получателями компонентов и т. Д.). Но это немного более болезненно, так как вам может потребоваться настроить защиту доступа к коду (CAS), которая не является простым процессом. Я не уверен, что политика CAS необходима для SPContext.Current.Web.CurrentUser.LoginName, и я склонен использовать ее только для веб-частей, а не для страниц ASP.NET. Быстрый поиск CAS с SharePoint привел меня сюда: http://blog.thekid.me.uk/archive/2007/02/17/code-access-security-cas-and-sharepoint.aspx, который выглядит хорошим началом, если вы действительно хотите покопаться в CAS.

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