Приложение ASP.NET 4.0, сопоставленное через виртуальную папку в SharePoint 2010

Я рассматриваю возможность публикации приложения ASP.NET MVC 3 в приложении SharePoint 2010 в IIS (не внутри SharePoint в качестве SPSite или чего-то еще, а просто в обычном приложении IIS для SSO-интеграции с SP) .

Тогда приложение MVC унаследует только некоторые конфигурации. Он не имеет ссылки на SharePoint, а SharePoint не имеет на него никаких ссылок, кроме того, что он является подприложением в приложении SharePoint 2010 в IIS.

3-кратный вопрос:

  • Является ли это возможным?
  • Есть ли какие-либо очевидные проблемы с SharePoint 2010, работающим на версии 3.5, и, например, с моим новым приложением, работающим на версии 4.0? Достаточно использовать разные пулы приложений?
  • Меня беспокоит наследование web.configs между моим приложением MVC и приложением SharePoint.
web.config. Are there any issues regarding web.config inheritance between these two?


person John Korsnes    schedule 31.05.2011    source источник
comment
да. Это возможно. Пока ваша разработка ограничена фреймворками, которые использует SP2010, все будет в порядке. .NET 4 совместим с 3.5, и я не вижу проблем.   -  person sajoshi    schedule 31.05.2011
comment
В данном случае я говорю о приложении ASP.NET MVC 3. Будут ли проблемы с наследованием web.config?   -  person John Korsnes    schedule 24.06.2011


Ответы (3)


ОБНОВЛЕНИЕ (27 февраля 2013 г.): нам больше не нужно использовать XML-элемент ‹location›, чтобы остановить наследование от SharePoint к приложению ASP.Net MVC 3. Нам нужно предоставить FullTrust приложению ASP.Net, используя XML-элемент ‹trust level="Full" originUrl="" /› XML в Web.Config.

Некоторые модули HTTP/обработчики HTTP необходимо отключить в приложении ASP.Net MVC 3.

Для сценария SharePoint 2010 мне также пришлось переместить XML-элемент ‹sectionGroup name="system.web.extensions"› из файла web.config SharePoint 2010 в C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ CONFIG\web.config, так как он конфликтует с .NET 4.0. Если вы переместите его туда, он все равно будет унаследован SharePoint web.config.

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

MVC 3 с SharePoint Server 2010:

http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-3-sous-un-site-web-iis-hbergeant-sharepoint-server-2010/

MVC 3 с WSS 3.0:

http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-sous-un-site-web-iis-hbergeant-wss-3-0-sharepoint-2007/

Это на французском языке, но я думаю, вы можете использовать переводчик Google.

С наилучшими пожеланиями,

person Frederick Samson    schedule 25.07.2012
comment
Перевод страницы немного усложнил задачу, и я столкнулся с несколькими проблемами, но блог, упомянутый выше, оказался точным (спасибо, Фредерик!). Недавно я написал это на случай, если кто-нибудь столкнется с похожими проблемами, которые были у меня: ericjamesw.com/2012/12/adding-aspnet-40-application-to.html - person ewitkows; 03.12.2012
comment
Немного старовато, но это то, что мы в итоге сделали. Не помню, был ли это machine.config или web.config для .NET 2.0 на рабочем сервере, который мы редактировали из-за system.web.extensions, но вы, вероятно, правы с web.config. - person John Korsnes; 19.03.2013

Я пытался и потерпел неудачу. В настоящее время приходится размещать приложение .Net 4 на отдельном IP-адресе, что создает всевозможные проблемы с кросс-скриптами/безопасностью. Я нашел несколько советов здесь: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes, но не смог заставить его работать.

person Mike Cocroft    schedule 28.06.2011
comment
Кстати, это описывает ошибку, которую вы получите britishdeveloper.co.uk/2010/03/ - person Mike Cocroft; 28.06.2011

Если ваше приложение будет работать только в Виртуальной папке (поэтому оно будет иметь доступ к SPContext, если это необходимо), а не под Application folder (следовательно, вообще не будет интегрировано в Sharepoint), то я предполагаю, что Asp. net MVC 3 не может быть и речи из-за его отношения к .net 4.

Но. Asp.net MVC 2 определенно возможен. Я разрабатываю такое приложение, и оно работает так, как ожидалось. Однако мне потребовалось некоторое время, чтобы интегрировать его ... Моя интеграция позволяет изменить только корневой сайт Sharepoint web.config (только добавить в него новые вещи, ничего не было удалено или изменено). Я не изменил даже Global.asax для определения маршрутизации.

Мое приложение работает как виртуальная папка на сайте Sharepoint Foundation 2010 и имеет доступ к SPContext, а также контролируется системой безопасности Sharepoint (аутентификация выполняется сайтом SP 2010). Так что это определенно возможно.

Но это должен быть Asp.net MVC 2, так как он работает на .net 3.5, как и Sharepoint 2010.

person Robert Koritnik    schedule 06.08.2011