2015-04-08 4 views
1

Я использую эту строку соединения без проблем для ряда баз данных и операционных систем MS. Windows Server 2003, 2008 R2 и 2012 R2 Eval, все версии Express.SQL Server 2008 R2 на сервере Server 2012 R2 проблема с подключением к веб-сайту

Теперь я пытаюсь установить новую установку Windows Server 2012 R2, и я получаю некоторые ошибки. У меня установлена ​​SQL Server 2008 R2 на машине Windows Server 2012 R2.

Моя жулик строка:

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDB.mdf;Integrated Security=True;User Instance=False" ProviderName="System.Data.SqlClient" 

Я думаю, что это должно быть что-то делать с последовательностью установки компонентов на новом сервере.

В прошлом я мог просто скопировать myDB.mdf на любой веб-сервер и открыть или получить доступ к таблицам БД. Эта БД включает членство ASP для веб-сайта, к которому он привязан.

Здесь ошибка:

CREATE DATABASE permission denied in database 'master'. An attempt to attach an auto-named database for file C:\inetpub\techTran\App_Data\myDB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: CREATE DATABASE permission denied in database 'master'.

Я думал, что я понял, в чем эта ошибка. Я проверил разрешения, и они соответствуют другим серверам, на которых была развернута эта база данных. Мои установки SQL Server в основном все одинаковы. Единственное отличие здесь в том, что это Windows Server 2012 R2 на виртуальной машине. Или я не устанавливал SQL Server 2008 R2 так же, как я сделал в последних 5 серверах, которые я установил. (Вероятно, это, вероятно, так и есть.)

UPDATE: Удаленный и переустановленный SQL Server и SSMS.

Я знаю, что на сервере есть только одно имя базы данных, которое называется myDB.mdf, поэтому я не верю части ошибки «того же имени». Я добавил безопасность в db, чтобы ее можно было открыть, и я даже установил Visual Studio 2012 на сервер, чтобы убедиться, что db можно открыть. Я могу запустить полное приложение на localhost (сервер 2012), но я не могу получить к нему доступ через веб-соединение.

Я считаю, что конкретное сообщение об ошибке, относящиеся к

CREATE DATABASE permission denied in database 'master'

является проблемой.

Я никогда не видел эту ошибку раньше.

Я обычно назначаю NETWORK SERVICE учетную запись в базу данных, чтобы разрешить доступ, и именно так она настроена. Я также подумал, что это может быть проблема с строкой соединения. Но эта же строка уже работала на 4 разных серверах без изменений. Server 2003, 2008 R2 и 2012 (демонстрационная платформа) (все экспресс-версии), теперь в производстве это не работает.

Начальная страница загружается, а затем логин выдает указанную выше ошибку.

+0

Подождите, откуда берется сервер 2003? Ранее вы сказали, что все они устанавливаются на [Windows Server 2008 R2] (http://stackoverflow.com/questions/29518829/security-principals-missing-in-sql-server-2008-r2)? Как я уже говорил, было значительное изменение между тем, как работают учетные записи службы (https://msdn.microsoft.com/en-us/library/ms143504 (v = sql.110) .aspx # New_Accounts) после Windows Server 2008 R2. Сервер 2003 также значительно отличается. –

+0

Создает ли ваше приложение базу данных, если она не может получить к ней доступ? Вы фактически скопировали базу данных из старой системы в новую систему? Вы проверили, что [серверные логины и пользователи базы данных по-прежнему правильно отображаются) (https://msdn.microsoft.com/en-us/library/ms175475 (v = sql.105) .aspx)? –

+0

Итак, у меня SQLSERVER 2008 R2, работающий на Server 2003, 2008 и 2012. Эта база данных находится в папке app_Data веб-сайта. У меня есть разные версии IIS, запущенные на каждом сервере. Я смог скопировать базу данных в любую папку app_data и получить доступ к БД через экран входа в веб-сайт. Сервер 2003 - это текущие системы prod и dev environment 2. Протестировалась миграция в 2008 году и решила окончательно перейти на 2012 год. На сервере Dev 2012 все работает и работает отлично. – htm11h

ответ

1

SOLVED: Я не уверен, как это произошло или, возможно, почему этого не произошло. Но по какой-то причине установка SQL не добавила учетную запись NETWORK SERVICE к роли сервера sysadmin. Я перекрестно ссылаюсь на это с установкой SERVER 2003, где также работает SQL 2008 R2, и обнаружил, что роль SQL-сервера sysadmin включала NETWORK SERVICE в моей правильно функционирующей среде. Поэтому, как только я добавил учетную запись пользователя к этой роли, все получилось отлично.

Я считаю, что это могло быть проблемой во время установки SQL 2008 R2. Я указал NETWORK SERVICE, но по какой-то причине это не было предусмотрено.

2

Ваша строка подключения говорит AttachDbFilename=|DataDirectory|\myDB.mdf. Ну, ваш путь должен быть изменен в одном месте (SQL Server), а не в другом (настройка приложения). AttachDbFilename попытается установить create a new DB if it can't find that file. Вероятно, это ваша ошибка.

В отличие от Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 и Windows Server 2012 R2 все имеют отличия, особенно с безопасностью и, в частности, с тем, как ведет себя SQL Server , но вы продолжаете использовать их взаимозаменяемо.Это очень запутывает, чтобы рассказать, что происходит. Кроме того, ваша строка подключения говорит Data Source=.\SQLEXPRESS. Является ли это SQL Server Express? Потому что это имеет важные отличия от большинства других выпусков SQL Server. Более свежие выпуски очень похожи на стандартную версию, но чем старше издание, тем больше причуд. Их обычно считают разными зверями.

 Смежные вопросы

  • Нет связанных вопросов^_^