Entity Framework 5 и Amazon RDS - "Исходный провайдер не смог открыть Open".

У меня есть веб-приложение С#/Entity Framework, которое отлично работает с локальной версией SQL 2012 db. Я скопировал db на новый экземпляр RDS и могу получить доступ к db через Visual Studio и SQL Server Management Studio.

Я hav a unit test, который аутентифицирует пользователя, а затем пытается вставить запись в таблицу с помощью вызова Entity Framework - dataContext.SaveChanges().

Я получаю следующую ошибку:

{"The underlying provider failed on Open."}
{"No such host is known"}
{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. 
The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
(provider: TCP Provider, error: 0 - No such host is known.)"}

Я весь день звонил по Интернету и до сих пор не добился успеха ни в одном из предложений, которые я нашел:

  • Порт 1433 открыт. Я могу получить доступ к точке входа через Telnet.
  • Мой IP-адрес покрывается диапазоном CIDR/IP для безопасности по умолчанию группа.
  • Ошибка возникает, как только я пытаюсь открыть соединение на datacontext.
  • Сервер db настроен на прием удаленного соединения.
  • Сервер db настроен на использование смешанной аутентификации (как Windows, так и SQL Server).

Строка подключения Entity Framework

connectionString = "metadata=res://*/MyDb.csdl|res://*/MyDb.ssdl|res://*/MyDb.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MyAwsEntryPoint;Initial Catalog=MyDb;User ID=MyUser;Password=MyPassword;Persist Security Info=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"

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

connectionString = "Data Source=MyAwsEntryPoint,1433;Initial Catalog=MyDb;User ID=MyUser;Password=MyPassword;Persist Security Info=True;Application Name=MyAppName;"

Ответ 1

Проблема была в строке подключения. В частности, у меня были свойства Application Name и App. Как только я удалил их, он сработал.

ПЛОХО:

<add name="MyDbEntities" connectionString="metadata=res://*/MyDb.csdl|res://*/MyDb.ssdl|res://*/MyDb.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyDbServer;Initial Catalog=MyDb;Persist Security Info=True;User ID=MyDb;Password=MyPassword;Application Name=MyDb.API.Models;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

ХОРОШО:

<add name="MyDbEntities" connectionString="metadata=res://*/MyDb.csdl|res://*/MyDb.ssdl|res://*/MyDb.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyDbServer;Initial Catalog=MyDb;Persist Security Info=True;User ID=MyDb;Password=MyPassword;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />