Веб-части и пользовательский экземпляр без SQL Express - PullRequest
2 голосов
/ 05 января 2010

У меня трудные времена с ошибкой SQL

Не удалось создать пользовательский экземпляр SQL Server из-за сбоя в запуске процесса для пользовательского экземпляра. Соединение будет закрыто.

Независимо от того, что я делаю (да, у меня запущен SQL Express в локальной учетной записи и я удалил папку SQLExpress в локальном профиле), пользователи под Windows 2008 всегда сталкиваются с этой проблемой, а иногда и с Vista (не так часто) ,

Мне нужно найти другие идеи!

Я подумывал перейти на SQLite (поскольку есть замечательный Провайдер ) или даже использовать вместо него XML файл.

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

Мне нужна только эта функциональность, но я не могу найти достойный способ отбросить пользовательские экземпляры SQL Express 2005 ... есть идеи?

Любая помощь высоко ценится, Спасибо .

Ответы [ 2 ]

1 голос
/ 05 января 2010

Я работал в компании веб-хостинга, где SQL Express использовался для пользователей свободного хостинга. Мы никогда не сталкивались с этой проблемой, поэтому это должна быть странная комбинация параметров.

Предлагаю провести исследование

  • Используйте Process Monitor , чтобы отследить, к каким файлам / каталогам / записям реестра SQL Express пытается получить доступ при возникновении ошибки. С помощью этой утилиты вы также можете обнаружить проблемы с правами доступа.

  • Просмотрите дополнительную информацию в журнале SQL Express, расположенную в C: \ Documents and Settings \ user_name \ Local Settings \ Application Data \ Microsoft \ Microsoft SQL Server \ SQLEXPRESS

  • Убедитесь, что у вас есть включенные экземпляры пользователей, запускающие это на экземпляре SQL Express по умолчанию sp_configure 'user instances enabled', '1'

  • Просто наверняка я попытался бы перечислить все пользовательские экземпляры и в конце концов попытаться подключиться к одному.

    Чтобы получить список пользовательских экземпляров, подключитесь к экземпляру по умолчанию (обычно с именем COMPUTER \ SQLEXPRESS) и выполните команду:
    SELECT instance_pipe_name FROM sys.dm_os_child_instances.

    Затем используйте значение в instance_pipe_name с утилитой sqlcmd:
    C:>sqlcmd -S np:\.\pipe\69651E0A-5550-46\tsql\query.

    Теперь вы подключены к пользовательскому экземпляру. Попробуйте выполнить несколько DML.

  • Вы, вероятно, сделали это, но наверняка посмотрите в Windows Event Viewer

Если при проверке ничего не происходит, вы всегда можете создать базу данных, используя случайный способ на экземпляре SQL Express по умолчанию (подключиться к серверу, создать базу данных, настроить строку подключения и использовать ее вместо database.mdf в своем решении).

0 голосов
/ 05 января 2010

Использование «Microsoft SQL Server Compact 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

...