Проблема с базой данных при переходе с VS Development Server на IIS7 - PullRequest
0 голосов
/ 24 июня 2009

У меня есть проект, который я пытаюсь переместить для запуска на IIS7 вместо сервера разработки Visual Studio. Все работает на VS Development Server, но при переходе на IIS7 кажется, что он ничего не может прочитать из базы данных, но не выдает ошибку базы данных, вместо этого он дает исключение NullReferenceException для информации, которую я пытаюсь получить из базы данных , Проект использует Linq для получения информации из БД, если это имеет значение. Кроме того, вот моя строка подключения. Я пытался возиться с этим безрезультатно.

     <connectionStrings>
       <add name="MyProjectConnectionString" connectionString="DataSource=MY-PC\SQLEXPRESS;Initial Catalog=MyProjectsDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
     </connectionStrings>

Информация о системе: IIS7 работает в Vista Business, SQL Server 2008 Express и прекрасно работает с Visual Studio Development Server и SQL Server 2008. Спасибо за любой вклад!

Ответы [ 5 ]

0 голосов
/ 24 июня 2009

Из строки подключения "connectionString =" DataSource = MY-PC \ SQLEXPRESS; Исходный каталог = MyProjectsDB; Integrated Security = True "похоже, что у вас возникнут проблемы с настройкой встроенной безопасности. При перемещении база данных из локальной в другое место, пользователь aspnet, как правило, не будет иметь прямого доступа к базе данных, как на локальной машине.

На сервере, к которому вы переходите, убедитесь, что на самом SQL Server установлен смешанный режим, создайте на SQL Server имя пользователя и пароль для базы данных, к которой вы пытаетесь подключиться, и убедитесь, что они иметь соответствующие уровни разрешений для добавления, редактирования, удаления и т. д.

Теперь вернитесь к строке подключения вашего web.config и измените строку подключения таким образом: connectionString = "Источник данных = myServerAddress; Начальный каталог = myDataBase; Идентификатор пользователя = myUsername; Пароль = myPassword;".

Удачи в вашем проекте.

0 голосов
/ 24 июня 2009

Вы можете сделать одно из следующих действий:

  1. Изменить удостоверение пула приложений на пользователя с правами SQL
  2. Изменить на аутентификацию SQL (имя пользователя + пароль)
  3. Добавить учетную запись компьютера домена \ webserver $ в SQL, например, BOBSGARAGE \ WEBSERVER1 $
  4. Включить пройти проверку подлинности , чтобы учетные данные передавались из браузера на SQL Server
  5. Хост SQL и IIS на одном сервере (плохая идея)
0 голосов
/ 24 июня 2009

Это проблема безопасности. Вы можете попробовать использовать имя пользователя / пароль сервера SQL или предоставить пользователю IIS доступ к этой базе данных. Пользователь IIS, вероятно, является NETWORK SERVICE

0 голосов
/ 24 июня 2009

Измените источник данных, чтобы он указывал на сервер, а не на ваш собственный компьютер, или просто используйте ". \ SQLEXPRESS" в качестве источника данных.

Чтобы использовать встроенную безопасность, вам может потребоваться добавить учетную запись сети в качестве пользователя в базе данных. В качестве альтернативы вы можете вместо этого использовать безопасность SQL Server, указав имя пользователя и пароль для пользователя, которого вы настроили в базе данных. На connectionstrings.com вы можете найти примеры написания различных строк подключения.

Тот факт, что вы получаете исключение нулевой ссылки, предполагает, что вы перехватываете исключение в своем коде и просто игнорируете его. Если вы это сделаете, это очень плохая практика. Ошибки могут возникать без вашего ведома, и вы не поймете, что не так, если заметите ошибку.

0 голосов
/ 24 июня 2009

Убедитесь, что пользователь IIS запущен, так как имеет разрешение на подключение к БД. Проверьте журнал событий приложения, чтобы увидеть, есть ли какие-либо события «невозможно подключиться». Я подозреваю, что ваше исключение NullReferenceException на самом деле является попыткой использовать неудачное соединение SQL.

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