Формат строки инициализации не соответствует спецификации, начиная с индекса 0
У меня есть ASP.Net приложение, которое отлично работает на моей локальной машине разработки.
когда я запускаю это приложение в интернете, он показывает следующую ошибку
формат строки инициализации не соответствует спецификации начиная с индекса 0
15 ответов:
Проверьте строку подключения. Если вам нужна помощь с этим проверки Строк Подключения, который имеет список часто используемых из них.
обычно используемые строки подключения:
SQL Server 2012
Стандарт Безопасности
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Доверительное Соединение
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
подключение к SQL Server экземпляр
синтаксис имени сервера/экземпляра, используемый в параметре server, одинаков для всех строк подключения SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername; Password=myPassword;
SQL Server 2005
Стандарт Безопасности
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Доверительное Соединение
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
подключение к SQL Server экземпляр
синтаксис имени сервера/экземпляра, используемый в параметре server, одинаков для всех строк подключения SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
MySQL
стандартный
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
указание TCP-порта
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Oracle
используя TNS
Data Source=TORCL;User Id=myUsername;Password=myPassword;
использование интегрированной безопасности
Data Source=TORCL;Integrated Security=SSPI;
использование ODP.NET без tnsnames.Ора
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
настроить проект, содержащий
DbContext
класс как стартовый проект.Я получаю эту ошибку при вызове
enable-migrations
. Даже если вPackage Manager Console
Я выбрал правоDefault project
он все еще смотрел в интернете.конфигурационный файл этого стартового проекта, где строка подключения отсутствовала.
Это может кому-то помочь.. Мой пароль содержал точку с запятой, поэтому столкнулся с этим issue.So добавлен пароль в кавычках. Это была действительно глупая ошибка.
Я изменил следующее :
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient" />
до
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;word'" providerName="System.Data.SqlClient" />
ссылка на полный путь sp решила эту проблему для меня:
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
убедитесь, что строка подключения имеет следующий формат:
сервер=FOOSERVER;базы данных=BLAH_DB;объединение=ложь;подключения таймаут=60;Комплексная безопасность=SSPI;
Если в вашей строке отсутствует
server
тег, то метод вернется обратно с этой ошибкой.
Это также происходит, когда вы копируете веб-страницу из одного решения в другое, а затем запускаете свое решение и обнаруживаете, что оно имеет другое имя строки подключения в webconfig. Затем вы небрежно измените имя строки подключения на панели свойств в режиме конструктора страницы.
лучше просто изменить его в части кода вместо дизайна.
моя проблема заключалась в том, что я добавил код ведения журнала базы данных в свой конструктор для объекта DB, и это, казалось, вызвало хаос в моем профиле развертывания azure.
FYI-я упростил этот пример, в реальном коде это было отключено в производстве (но все еще в коде)
public class MyDB : DbContext { public MyDB() { this.Database.Log = x => { Debug.WriteLine(x); }; } }
У меня была опечатка в строках подключения "Database==PESitecore1_master"
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
у меня была та же проблема и, наконец, мне удалось решить ее следующим образом:
проблема была в определении строку подключения в web.конфиг.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
выше работал идеально локально, потому что я использовал локальную базу данных, когда я управлял пользователями и ролями. Когда я перенес свое приложение в IIS, локальная БД больше не была доступна, кроме того, я хотел бы использовать свою БД в SQL Server. Поэтому я изменяю приведенную выше строку подключения следующим SQL Эквивалент БД сервера:
<add name="DefaultConnection" connectionString="data source=MY_SQL_SERVER; Initial Catalog=MY_DATABASE_NAME; Persist Security Info=true; User Id=sa;Password=Mybl00dyPa$$" providerName="System.Data.SqlClient"/>
Примечание: выше, также, предположим, что вы собираетесь использовать тот же SQL Server из вашего локального окна (в случае, если вы включаете его в свой локальный веб-сайт.конфиг - это то, что именно я сделал в моем случае).
у меня была та же проблема. Локально сайт работал нормально, но в azure он потерпел бы неудачу с сообщением выше.
оказывается, проблема заключалась в установке connectionstring в ctor, например:
public DatabaseContext() { Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString; }
не работает, это:
public DatabaseContext() : base("db") { }
бьет меня..
Я решил эту проблему, изменив строку подключения в настройках публикации моего ASP.NET Web Api.
проверить мой ответ на этот пост: как исправить ошибку ::формат строки инициализации не соответствует спецификации, начиная с индекса 0::
у меня была такая же ошибка. В моем случае это было потому, что я пропустил заключительную цитату для пароля в строке подключения.
изменилось от этого
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient" />
до
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient" />
У меня была та же проблема, я узнал, что развертывание в IIS не установило строки подключения правильно. они были ' $(ReplacableToken_devConnection-Web.config Connection String_0) ' при просмотре строк подключения сайта в IIS вместо фактической строки подключения. Я обновил их там, и все работало как ожидалось
Проверьте строку подключения, как я забыл добавить
services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
это вызывает ошибку и здесь, когда я добавляю
Configuration.GetConnectionString
, то это решает проблемукак сейчас соединение:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
отлично работает (эта проблема решена для .net core)
Я скопировал и вставил свою конфигурацию строки подключения в свой тестовый проект и начал работать с этой ошибкой. Строку подключения нормально работал на мой проект веб-API. Вот мое решение.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"]; UnitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));