Основная структура объекта с кодом первой строки подключения к удаленной базе данных

StackOverflow https://stackoverflow.com/questions/19852836

Вопрос

Я работаю над локальной машиной (приложение ASP.NET MVC 4), но теперь я хочу начать использовать SQL Server компании, поэтому мне нужно изменить строку подключения, чтобы подключить меня к этому удаленному серверу.

Установка такова:

  • У меня есть подключение к VPN, где я использую IP -адрес, не могу показать точный IP, так что, скажем, - xxx.xxx.xxx.xxx
  • У меня есть имя пользователя и пароль, чтобы подключиться к VPN - Vpnusername/Vpnpassword
  • Когда я использую Microsoft SQL Server Management Studio Для подключения к удаленному серверу я использую тот же IP, который я использую для подключения к VPN - xxx.xxx.xxx.xxx
  • У меня разные имя пользователя и пароль для SQL Server - SQLuserName/SQLPASSWORD

У меня есть существующая строка подключения, которую я использую для подключения к серверу на своем компьютере, поэтому я подумал, что этого будет достаточно, чтобы просто изменить там параметры так:

<add name="ProjectName.DAL.MyDbContext"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=xxx.xxx.xxx.xxx;
     Initial Catalog=DatabaseName;Integrated Security=True;         
     MultipleActiveResultSets=True;
     user id=SQLUsername;password=SQLPassword;App=EntityFramework" />

Таким образом, изменения от строки подключения, которая работает и подключает меня к моим локальному серверу, два:

  1. Data Source= xxx.xxx.xxx.xxx - Я использую IP. Здесь мне интересно, достаточно ли самой IP. Я должен использовать http://xxx.xxx.xxx.xxx Или просто IP в порядке?
  2. user id=SQLUsername;pasword=SQLPassword - Я использую то же имя пользователя и пароль, что и в Management studio откуда я могу успешно подключиться к серверу удаления, предоставив xxx.xxx.xxx.xxx как имя сервера и использование SQLuserName/SQLPassword под SQL Server Authentincation.

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

private MyDbContext db = new MyDbContext();

        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }

Я получаю 3 исключения:

  1. SQLexception (0x80131904): вход в систему не удастся для пользователя 'vpnusername'
  2. ProviderIncOversibleException: поставщик не вернул строку Provider ManifestToken.
  3. ProviderIncOversibleException: произошла ошибка при получении информации о поставщике из базы данных. Это может быть вызвано структурой сущности, используя неправильную строку подключения.

Поэтому, по моему мнению, и, как указывает на исключение числа 3, что проблема заключается в том, как я использую строку соединения, что меня беспокоит. Number 1 Исключение, которое говорит о том, что логин потерпел неудачу, но не для моего sqlusername, а для vpnusername. Как я уже сказал - я действительно использую VPN -соединение и использую тот же IP - xxx.xxx.xxx.xxx Чтобы подключиться как к VPN, так и к SQL Server (от Management Studio).

Есть идеи, как это решить?

Это было полезно?

Решение

Удалять Integrated Security=True Из вашей строки подключения, когда вы пытаетесь подключиться к имени пользователя/пароля SQL Server

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top