Уеб части и потребителски екземпляр без SQL Express

Имам трудни времена с SQL грешката

Неуспешно генериране на потребителски екземпляр на SQL Server поради грешка при стартиране на процеса за потребителския екземпляр. Връзката ще бъде затворена.

Без значение какво правя (да, имам SQL Express, работещ в локалния акаунт и изтрих папката SQLExpress в локалния профил), потребителите под Windows 2008 винаги получават този проблем, а понякога и на Vista (не толкова често).

Трябва да намеря други идеи!

Мислех да премина към SQLite (тъй като има чудесен доставчик) или дори използвайте XML файл вместо това.

Всичко, което правя, е да управлявам WebParts като панели, които всеки потребител може да променя своята видимост и място. Когато приключите с редактирането, той автоматично се записва в потребителския екземпляр.

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

Всяка помощ е високо ценена, Благодаря ви.


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


Отговори (2)


Работих за уебхостинг компания, където SQL Express беше използван за безплатни хостинг потребители. Никога не сме срещали този проблем, така че трябва да е някаква странна комбинация от параметри.

Предлагам да се направи проучване

  • Използвайте Монитор на процеси, за да проследите кои файлове/директории/записи в регистъра са 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) и стартирайте:
    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

Ако нищо не излезе от сондирането, винаги можете да създадете база данни, като използвате snandard начин на екземпляр по подразбиране на SQL Express (свържете се със сървъра, създайте база данни, настройте низ за свързване и го използвайте вместо database.mdf във вашето решение).

person Petr Havlicek    schedule 05.01.2010
comment
+1 фантастично как да стъпките ... в крайна сметка се превърнах в SQLite и сега нямам проблеми :) и SQLite файлът има само 9Kb срещу 4Mb минимум от 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, не е налична в компактното издание - person balexandre; 05.01.2010
comment
Защото това, което правите с помощта на sql express, е прекалено. Можете просто да направите една база данни с компактната версия, където потребителите могат да запазят своята конфигурация, идентифицирана чрез ID на сесията. Но хей, това е твое решение. чао ;) - person feal87; 05.01.2010