Развертывание EF 4.1 с кодовым ASP.NET MVC3 на средний хостинг
Я думаю, что это довольно распространенная ситуация в наши дни, поэтому удивительно, что у меня проблемы с поиском хорошего и чистого решения для нее (даже здесь, в SO).
У меня есть мое веб-приложение ASP.NET MVC3, использующее Entity Framework 4.1 с кодовым подходом (используя DatabaseInitializer для сортировки данных по умолчанию). Я также попробовал два варианта базы данных: SQL Express 2008 R2 и SQL Compact 4. Все работает нормально на локальном.
Теперь я хочу разместить мое приложение, чтобы найти hosting (средний называется "оптимальным" ) и, наконец, (после некоторых проблем) попал в состояние, где я получаю ошибку среднего доверия (я считаю).
Приложение попыталось выполнить операция, не разрешенная политика безопасности. Предоставить это приложение требуется разрешение обратитесь в свою систему администратора или изменить уровень доверия приложений в файл конфигурации.
Давайте считать, что я никак не могу настроить этот хостинг, и я не думаю, что они собираются переключить меня на полное доверие.
Что мне нужно сделать, чтобы мое приложение работало на хостинге среднего доверия?
Изменить: я нашел несколько ответов, которые обычно распространяют настройку доверия к среде на локальном dev и просто делают это так, поэтому мой вопрос теперь может выглядеть примерно так:
Что такое "лучшие 5 причин", почему приложение ASP.NET MVC3 EF 4.1 не будет работать на уровне доверия?
Изменить: я добавил щедрость к этому, потому что я хотел бы увидеть некоторое обсуждение.. или, по крайней мере, больше оппонентов/опытов, содержащих больше, чем просто "установить доверие к среде на локальном dev". Может быть, здесь нечего обсуждать, но мне просто интересно, потому что я уже потратил больше времени на это, чем хотелось бы.
Ответы
Ответ 1
Я видел, как другие люди жалуются на ту же ошибку, когда на сервере не было .NET 3.5 с пакетом обновления 1 (SP1) и они смогли обойти его, поместив библиотеки DLL в папку bin.
Здесь также немного больше информации о нескольких вещах, которые нужно проверить:
log4net бросает исключение безопасности в веб-приложении ASP.Net MVC
Ответ 2
У вас есть последняя библиотека EF Code First? Все, что было до RC, не было совместимым с уровнем доверия.
Если вы собираетесь использовать SQL CE 4, он совместим с средним уровнем доверия, но вы развертываете файлы движка базы данных SQL CE?
Вы уверены, что ваша проблема связана с первым кодом EF? AKA. Вы пробовали просто сначала запустить простой сайт MVC и запустить его? Здесь статья о настройке MVC в средстве доверия, а другая в bin, развертывающая MVC3 для хостов, которые еще не запускают/поддерживают MVC3.