доступ к app.config во время выполнения исключения - PullRequest
0 голосов
/ 02 декабря 2011

Я имею дело с приложением формы .NET для Windows, написанным на C #, использующим инфраструктуру сущностей для соединения с базой данных.Строка подключения записана в app.config.Дело в том, что я изменяю приложение для переключения между двумя разными базами данных: SQL Server Express 2008 и SQL Compact 4. Если приложение не может подключиться к SQL-серверу, оно изменяет раздел строки подключения app.config для разрешенияимя для связи с локальной базой данных (SQL Compact 4).Проблема в том, что на некоторых компьютерах срабатывает исключение: доступ к пути запрещен, где путь является тем, где установлено приложение.Как я мог преодолеть эту проблему?

1 Ответ

1 голос
/ 02 декабря 2011

Приложение пользовательского режима не должно пытаться записывать на диск где-либо, кроме как в профиле пользователя. Это означает, что что-либо в c:\Program Files должно быть запрещено программой, если только оно не является административной программой (и, следовательно, потребует повышения прав в Win7 / Vista).

Системы Windows XP с пользователями, работающими от имени администратора, вероятно, работают нормально; Но в системах Vista / 7 могут возникать исключения или даже ошибки, которые молча терпят неудачу. (из-за того, что он перенаправляется в пользовательскую копию app.config вместо реальной).

Вместо этого вы должны хранить различные строки подключения в app.config и предоставлять пользователю возможность выбирать из них в своем приложении. Вы можете использовать пользовательские настройки, чтобы сохранить, какая строка использовалась последней.

...