Развертывание 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.