Вопрос

У меня тяжелые времена из-за ошибки 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

Если вы не создаете большое и сложное приложение (множество хранимых процедур, триггеров и т. д.), это хороший способ работы.

Вот еще информация:

http://blogs.msdn.com/stevelasker/archive/2006/11/27/sql-server-compact-edition-under-asp-net-and-iis.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top