Не удалось создать пользовательский экземпляр SQL Server из-за сбоя при получении пути к данным локального приложения пользователя - PullRequest
5 голосов
/ 23 января 2011

net project в vs2010 У меня есть база данных и таблица в папке app_data, я создал пакет развертывания и импортировал пакет на сервер iis, который установлен на моем локальном механизме.Теперь я получаю это сообщение об ошибке при попытке предварительно вставить вставку.

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

строка подключения:

Источник данных =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ survey.mdf; Интегрированная безопасность = True;Пользовательский экземпляр = True

при запуске его внутри VS2010 он работает нормально.

как я могу решить эту проблему?

Ответы [ 5 ]

7 голосов
/ 12 ноября 2011

Эта статья помогла решить эту проблему: http://support.microsoft.com/kb/2002980

Редактировать Из статьи MSDN (если ссылка исчезла):

Разрешение для Windows 7 и Windows Server 2008 R2

Для всех веб-приложений, работающих под управлением IIS 7.5, независимо от типа проекта, выполните следующие действия:

  1. ЗапуститеИнструмент Диспетчер информационных служб Интернета (IIS).Доступ к этому инструменту можно получить либо из административного меню «Пуск», либо набрав «inetmgr» в текстовом поле «Пуск» -> «Поиск» и выбрав инструмент inetmgr.
  2. В левой панели инструмента IIS Managerразверните узел машины.Нажмите на узел «Пулы приложений», чтобы пулы приложений отображались в главном окне инструмента управления.
  3. Если вы устраняете неполадки приложения ASP.NET 2.0 / 3.0 / 3.5, выберите пул приложений «DefaultAppPool»,Для ASP.NET v4 выберите пул приложений «ASP.NET v4.0».
  4. Щелкните правой кнопкой мыши выбранный пул приложений и выберите «Дополнительные параметры»
  5. В разделе «Дополнительные параметры»В диалоговом окне найдите категорию «Модель процесса».Первой строкой в ​​категории будет строка «Идентичность».
  6. Нажмите на строку «Идентичность», а затем нажмите небольшую кнопку, которая отображается с правой стороны ячейки значения.На кнопке отображается текст «…»
  7. Появится диалоговое окно «Идентификация пула приложений».В этом диалоговом окне есть две радиокнопки.Убедитесь, что выбран первый переключатель «Встроенная учетная запись».
  8. В раскрывающемся списке под переключателем выберите «Сетевой сервис» для идентификации.
  9. Нажмите «ОК», чтобызакройте диалоговое окно «Идентификация пула приложений».
  10. Нажмите «ОК», чтобы закрыть диалоговое окно «Расширенные настройки».
  11. На этом этапе изменения идентификатора пула приложений будут иметьбыл сохранен в хранилище конфигурации IIS 7.5.

Разрешение для проектов и веб-сайтов веб-приложений

Для проектов веб-приложений (WAP) и веб-сайтов, расположенных в папке документов пользователя, размещенной в любой версии IIS, на которой выполняетсяв качестве NETWORK SERVICE выполните следующие шаги:

  1. Сначала убедитесь, что IIS настроен для работы в качестве NETWORK SERVICE.Это значение по умолчанию на IIS6 и IIS7.Однако, если вы работаете в Windows 7 или Window Server 2008 R2, вам сначала необходимо выполнить шаги, описанные выше в разделе «Разрешение для Windows 7 и Windows Server 2008 R2», чтобы пулы приложений IIS работали в качестве NETWORK SERVICE.
  2. В командной строке введите net stop iisadmin / y.Это приведет к закрытию всех работающих приложений ASP.NET WAP.
  3. Выход из всех запущенных экземпляров Visual Studio.
  4. СЕТЕВУЮ СЕРВИСУ должно быть предоставлено разрешение на чтение в расположенной папке Visual Studio верхнего уровня.в папке «Документы» вашего пользователя.Папка Visual Studio будет иметь разные имена в зависимости от версии: «Visual Studio 2005», «Visual Studio 2008» или «Visual Studio 2010».
  5. СЕТЕВОЙ СЕРВИС должен быть предоставлен разрешения как на чтение, так и на запись.папка проекта верхнего уровня проекта.Например, если ваш WAP-проект называется «MyCustomWebProject», то в папке «Documents \ Visual Studio 20xx \ Projects \ MyCustomWebProject» должен быть включен доступ для чтения и записи для NETWORK SERVICE.Или, если ваш веб-проект называется «MyCustomWebProject», то для папки «Documents \ Visual Studio 20xx \ Websites \ MyCustomWebProject» должен быть разрешен доступ для чтения и записи для NETWORK SERVICE.
  6. NETWORK SERVICE должен быть предоставлен обоимразрешения на чтение и запись в папке App_Data, расположенной в структуре каталогов вашего веб-проекта.
7 голосов
/ 23 января 2011

Удалить User Instance=True. Вам не нужны RANU экземпляры. Затем убедитесь, что учетная запись службы SQL Server Express имеет необходимые необходимые права для ваших app_data:

cacls <path\app_data> /E /T /G SQLServerMSSQLUser$<ComputerName>$SQLEXPRESS:F 
3 голосов
/ 12 декабря 2012

Решение со мной

1002 *
3 голосов
/ 19 октября 2011

РЕШЕНИЕ ДЛЯ ОКРУЖАЮЩЕЙ СРЕДЫ:

Win 7, IIS 7.0, Visual Studio 2010, файл Database.mdf

Откройте веб-конфигурацию и проверьте строку соответствия:

Важноубедитесь, что за AttachDbFilename НЕ следует C: \ inetpub \ <> \ App_Data \

<add name="conexion" 
    connectionString="Data Source=.\SQLEXPRESS;
    AttachDbFilename=|DataDirectory|Database.mdf;
    Integrated Security=True;
    User Instance=True" />

В IIS 7.0 Перейдите в ApplicationPools и найдите пул приложений, созданный для приложения.

  • Нажмите Расширенные настройки
  • Перейдите в Identity и откройте ее. Выберите Пользовательскую
  • Учетную запись и настройте учетную запись администратора пользователя ПК или Сервера

Затем перейдите на веб-сайтв IIS 7.0 и щелкните по нему ...

  • Найдите и дважды щелкните значок аутентификации
  • Нажмите на анонимную аутентификацию и выберите «Изменить», затем выберите «Идентификация пула приложений»

    Найдите олицетворение ASP.NET и измените его, выберите «Указать пользователя» и введите учетные данные.

Перезапустите IIS: cmd> iisreset / noforce или нажмите кнопку «Сбросить изображение»

0 голосов
/ 16 марта 2018

RUN-> INETMGR ->
перейдите на сайты выберите свой сайт
Затем перейдите на правую панель и найдите «Основные настройки»
Затем нажмите «Подключиться как», затем выберите «Конкретный пользователь» ЗатемНажмите «Set»
Введите имя пользователя и пароль для локального ПК, затем нажмите «OK»

Затем нажмите «Test Setting», если вы видите, что оба параметра зеленые, затем Ok.
Проблема решена
Наслаждайтесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...