Веб-части и пользовательский экземпляр без SQL Express

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

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

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

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

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

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

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

Любая помощь приветствуется, Спасибо.


person balexandre    schedule 05.01.2010    source источник


Ответы (2)


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

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

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

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

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

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

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

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

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

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

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

person Petr Havlicek    schedule 05.01.2010
comment
+1 фантастические шаги ... Суть в том, что я превращаю себя в SQLite, и теперь у меня нет проблем :) а файл SQLite имеет только 9 КБ против 4 МБ минимум из файла mdb. :) - person balexandre; 27.01.2010
comment
Рад, что вы нашли подходящее решение :) - person Petr Havlicek; 27.01.2010

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

person feal87    schedule 05.01.2010
comment
-1 Функция пользовательского экземпляра - это функция SQL Express, она недоступна в версии Compact. - person balexandre; 05.01.2010
comment
Для того, что вы делаете, используя sql express, это излишне. Вы можете просто создать единую базу данных с компактной версией, где пользователи могут сохранять свою конфигурацию, идентифицированную идентификатором сеанса. Но послушайте, это ваш звонок. до свидания ;) - person feal87; 05.01.2010