Членство в ASP не может обрабатывать зашифрованные строки подключения в web.config
Мы столкнулись с ошибками при использовании одного из наших веб-методов на тестовом веб-сервере, который у нас есть. Основная ошибка была:
"Access to the path 'E:\websites\Discovery\ProfileService\App_Data' is denied"
Дальнейшее изучение трассировки стека дает немного больше информации:
"at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile..."
"at System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile..."
"at System.Web.DataAccess.SqlConnectionHelper.GetConnection..."
"at System.Web.Security.SqlMembershipProvider.GetUser..."
"at System.Web.Security.Membership.GetUser..."
"at System.Web.Security.Membership.GetUser..."
Оказалось, что поставщик членства пытается найти строку подключения для вызова членства. Не найдя эту запись, он попытался создать новую локальную базу данных членства и не смог сделать это с ошибкой прав доступа.
Мы дважды проверили строки подключения, и они казались в порядке, хотя они были зашифрованы. Затем мы сохранили конфиг с расшифрованным разделом строки подключения - теперь вызов работает!
Мы знаем, что строки подключения были правильными, потому что другие методы обслуживания работали нормально. Что еще более странно, так это то, что некоторые аспекты членства, казалось, работали с шифрованием на месте.
Кто-нибудь видел это раньше или знает, как заставить это работать с зашифрованными строками соединения?
1 ответ
В вашем коде перед тем, как сделать вызов SQL, вы расшифровываете строки подключения?
Вероятно, ошибка трассировки стека означает, что ваше приложение не имеет разрешения на запись в этот каталог.