Я только что развернул сайт ASP.NET MVC3 новому хостеру. Он использует панель управления Plesk. Сайт использует Sql Server Compact 4.0 и Поставщик роли и членства в Sql Server Compact от EricEJ.
При попытке доступа к сайту я получаю сообщение об ошибке отказа в доступе в файле web.config, куда я добавляю SqlCeMembershipProvider:
Описание: произошла ошибка во время обработки файла конфигурации, необходимого для обслуживания этого запроса. Просмотрите приведенные ниже сведения о конкретных ошибках и соответствующим образом измените файл конфигурации.
Сообщение об ошибке парсера: доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
Ошибка источника:
Line 31: <clear /> Line 32: <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> Line 33: <add name="SqlCeMembershipProvider" type="ErikEJ.SqlCeMembershipProvider, ErikEJ.SqlCeMembership" connectionStringName="SqlCeServices" applicationName="/" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" writeExceptionsToEventLog="false" /> Line 34: </providers> Line 35: </membership>
Строка подключения SqlCeServices настраивается следующим образом:
<connectionStrings>
<add name="SqlCeServices" connectionString="data source=|DataDirectory|\SqlCeAspnetdb.sdf" />
</connectionStrings>
Когда я перехожу в «Диспетчер файлов» на панели управления Plesk и нажимаю «изменить разрешения» для папки «App_Data», все пользователи (которых я могу настроить) имеют права на запись и изменение:
Хотя, когда я нажимаю кнопку «Дополнительно», я вижу вот что:
Запись внизу для «Пользователь Plesk IIS WP (IWPD_321)» имеет все разрешения. Но, видимо, наверху есть 2 дополнительные записи для того же пользователя. У них нет прав на запись, но все, что я изменяю для этих двух, не сохраняется. Когда я возвращаюсь к экрану, они снова такие, как показано (без разрешения на запись).
Я не уверен, что я могу сделать или что мне нужно попросить службу поддержки хостера, чтобы решить эту проблему (похоже, у них нет опыта работы с Sql Server Compact).
Я попытался удалить строки из web.config, где используется строка SqlServerCe Connection, а затем я могу запустить сайт, но не могу создавать (регистрировать) пользователей или роли, так как у меня нет базы данных Sql Server.
Есть предложения, что попробовать дальше?
Я нашел решение. Мне нужно было добавить Права на "чтение / выполнение" папки \ bin и всех ее дочерних объектов для пользователя «Пользователь Plesk IIS WP (IWPD_321)».
В папке \ bin находятся двоичные файлы Sql Server Compact.
Думаю, я слишком много внимания уделял папке \ App_Data ...