Веб-части и экземпляр пользователя без SQL Express
-
18-09-2019 - |
Вопрос
У меня тяжелые времена из-за ошибки SQL
Не удалось создать пользовательский экземпляр SQL Server из-за сбоя при запуске процесса для пользовательского экземпляра.Соединение будет закрыто.
Независимо от того, что я делаю (да, у меня запущен SQL Express в локальной учетной записи и я удалил папку SQLExpress в локальном профиле), пользователи под Windows 2008 всегда сталкиваются с этой проблемой, а иногда и в Vista (не так часто).
Мне нужно найти другие идеи!
Я думал переехать в SQLite (так как есть замечательный Поставщик) или даже использовать XML вместо этого файл.
Все, что я делаю, — это управляю веб-частями как панелями, видимость и расположение которых каждый пользователь может изменить.По завершении редактирования он автоматически сохраняется в пользовательском экземпляре.
Мне нужна только эта функция, но я не могу найти достойный способ удалить пользовательские экземпляры SQL Express 2005...Любые идеи?
Любая помощь высоко ценится, Спасибо.
Решение
Я работал в компании веб-хостинга, где SQL Express использовался для пользователей бесплатного хостинга.Мы никогда не сталкивались с этой проблемой, поэтому, должно быть, это какая-то странная комбинация параметров.
Предлагаю провести зондирование
Использовать Монитор процессов чтобы отследить, к каким файлам/каталогам/записям реестра SQL Express пытается получить доступ при возникновении ошибки.С помощью этой утилиты вы также можете обнаружить проблемы с правами доступа.
Дополнительную информацию можно найти в журнале SQL Express, расположенном в папке C:\Documents and Settings\имя_пользователя\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS.
Убедитесь, что у вас есть пользовательские экземпляры, позволяющие запускать это на экземпляре SQL Express по умолчанию.
sp_configure 'user instances enabled', '1'
Наверняка я бы попытался составить список всех экземпляров пользователей и в конечном итоге попытаться подключиться к одному из них.
Чтобы просмотреть экземпляры пользователей, подключитесь к экземпляру по умолчанию (обычно с именем COMPUTER\SQLEXPRESS) и запустите:
SELECT instance_pipe_name FROM sys.dm_os_child_instances
.
Затем используйте значение в имени экземпляра_pipe_name с помощью утилиты sqlcmd:
C:>sqlcmd -S np:\.\pipe\69651E0A-5550-46\tsql\query
.
Теперь вы подключены к экземпляру пользователя.Попробуйте выполнить какой-нибудь DML.Вероятно, вы это сделали, но обязательно посмотрите в средстве просмотра событий Windows.
Если в результате проверки ничего не получится, вы всегда можете создать базу данных, используя стандартный способ в экземпляре SQL Express по умолчанию (подключитесь к серверу, создайте базу данных, настройте строку подключения и используйте ее вместо data.mdf в своем решении).
Другие советы
Использование «microsoft sql server Compact 3.5» дает вам практически любую обычную функциональность sqlexpress, при этом его легко переносить без установки реального сервера.
http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx
Если вы не создаете большое и сложное приложение (множество хранимых процедур, триггеров и т. д.), это хороший способ работы.
Вот еще информация: