Я боролся с этим почти два дня безрезультатно. У меня есть приложение Asp. Net MVC, которое использует SQL БД сервера. Локально работает отлично. Он подключается к БД, используя следующий формат строки подключения:
<add name="MyConnectionDb" providerName="System.Data.SqlClient" connectionString="data source=localhost;Initial Catalog=SomeDatabase;Integrated Security=True;" />
Я развернул сайт на виртуальной машине Windows, размещенной на AWS. Часть AWS, я думаю, не имеет ничего общего с ошибкой, но на всякий случай. Хорошо двигаясь дальше, я развернул его на этой виртуальной машине.
Также я включил DNS для этого виртуального IP-адреса, чтобы он мог быть доступен для других людей в команде.
Пока все отлично работает. В данный момент проблема заключается в подключении к БД из внешнего источника, отличного от ВМ. Это ошибка, которую я вижу при просмотре событий:
Информация об исключении: Тип исключения: ArgumentException Сообщение об исключении: Формат строки инициализации не соответствует спецификации, начиная с индекса 0. System.Data.Common .DbConnectionOptions.GetKeyValuePair (String connectionString, Int32 currentPosition, буфер StringBuilder, логическое значение useOdbcRules, String & keyname, String & keyvalue) в System.Data.Common.DbConnectionOptions.ParseInternal (Hashtable parsetable, BooleaningSigning, StringingSigning, String, String, String, ключевая переменная) System.Data.Common.DbConnectionOptions..ctor (String connectionString, синонимы Hashtable, логическое использование useOdbcRules) в System.Data.SqlClient.SqlConnectionString..ctor (String connectionString) в System.Data.SqlClient.SqlConnectionFactory.OptionsConceЛИxDirectorySring предыдущий) в System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (ключ DbConnectionPoolKey, DbC onnectionPoolGroupOptions poolOptions, DbConnectionOptions & userConnectionOptions) в System.Data.SqlClient.SqlConnection.ConnectionString_Set (ключ DbConnectionPoolKey) в System.Data.SqlClient.SqlConnection.set_ConnectionInter.Intern.Info.Inter.Inter. StringInter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter .Inter. операция, TInterceptionContext interceptionContext, действие 3 executing, Action
3 выполнено) в System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.SetConnectionString (соединение DbConnection, DbConnectionPropertyInterceptionContext 1 interceptionContext)
at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
at System.Data.Entity.Internal.LazyInternalConnection.get_Connection()
at System.Data.Entity.Infrastructure.DbContextInfo..ctor(Type contextType, DbProviderInfo modelProviderInfo, AppConfig config, DbConnectionInfo connectionInfo, Func
1 resolver) в System.Data.rations.ig.Mity.Mity.IntM.IntM.IntM.Intity. (Конфигурация DbMigrationsConfiguration, DbContext usersContext, DatabaseExistenceState creationState, Boolean namedByCreateDatabase)
Интересная часть, если я использую приведенную выше строку подключения для генерации БД (сначала мы используем код EF) из Visual Studio -> Package Manager Console внутри ВМ это работает. Но не тогда, когда мы пытаемся использовать сайт.
Это еще один формат строки подключения, который я пробовал:
<add name="MyConnectionDb" providerName="System.Data.SqlClient" connectionString="Server=localhost\MSSQLSERVER01;Database=SomeDatabase;User ID=myUser;Password=mypassword;Trusted_Connection=False;" />
Не уверен, что происходит. Я также ссылался на этот Stackoverflow ссылка , но тот же результат.