Назад | Перейти на главную страницу

Отказано в доступе при обработке web.config с помощью Sql Server Compact

Я только что развернул сайт 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 ...