Это было странно.Оказалось, что часть моего приложения ссылалась на один aspnetdb
файл на Sql Server, а другой пытался сослаться на один локально созданный в приложении.
Моя строка подключения была для этого:
<add name="ApplicationServices"
connectionString="Data Source=localhost; Initial Catalog=aspnetdb; Integrated Security=True" providerName="System.Data.SqlClient" />
Но ошибка была в следующем
Произошел сбой при использовании «ProfileProvider» по умолчанию.Пожалуйста, убедитесь, что он настроен правильно.База данных 'C: \ WEBSITES \ XXXX.SILVERLIGHT \ ADMIN \ APP_DATA \ ASPNETDB.MDF' не может быть обновлена, поскольку она доступна только для чтения, имеет файлы только для чтения или у пользователя нет прав на изменение некоторых файлов.Сделайте базу данных или файлы доступными для записи и перезапустите восстановление.
Мне потребовалось некоторое время, чтобы заметить, что это было в моем корне приложения, а не в версии Sql Server, которую использует основная часть моего приложения.
В моем случае я просто переименовал локально созданные файлы aspnetdb, и когда я перезапустил pplication, он просто воссоздал их с их размерами по умолчанию (10240kb и 504kb).
Я не совсем уверен, какэто происходит, но в моем случае это было достаточно.
Я думаю, что, возможно, я не использовал поставщика профилей явно, поэтому он использовал настройки по умолчанию.Остальная часть приложения использовала правильную строку подключения.