У меня есть приложение ASP.Net, которое отлично работает на моей локальной машине разработки.
Когда я запускаю это приложение онлайн, он показывает следующую ошибку
Формат строки инициализации не соответствует спецификации начиная с индекса 0
У меня есть приложение ASP.Net, которое отлично работает на моей локальной машине разработки.
Когда я запускаю это приложение онлайн, он показывает следующую ошибку
Формат строки инициализации не соответствует спецификации начиная с индекса 0
Проверьте строку подключения. Если вам нужна помощь, проверьте Строки подключения, в котором есть список наиболее часто используемых.
Обычно используемые строки подключения:
Стандартная безопасность
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Надежное соединение
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Подключение к экземпляру SQL Server
Синтаксис имени сервера/экземпляра, используемый в параметре сервера, одинаковый для всех строк подключения SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
Стандартная безопасность
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Надежное соединение
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Подключение к экземпляру SQL Server
Синтаксис имени сервера/экземпляра, используемый в параметре сервера, одинаковый для всех строк подключения SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
Стандартный
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Указание порта TCP
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Использование TNS
Data Source=TORCL;User Id=myUsername;Password=myPassword;
Использование встроенной безопасности
Data Source=TORCL;Integrated Security=SSPI;
Использование ODP.NET без tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Это может помочь кому-то. Мой пароль содержал точку с запятой, поэтому она столкнулась с этой проблемой. Так же добавлен пароль в кавычки. Это была глупая ошибка.
Я изменил следующее:
<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" />
Задайте проект, содержащий класс DbContext
в качестве запуска.
Я получал эту ошибку при вызове enable-migrations
.
Даже если в Package Manager Console
я выбрал правильный Default project
, он все еще смотрел файл web.config этого проекта запуска, где строка подключения отсутствовала.
Убедитесь, что строка соединения находится в этом формате:
сервер= FOOSERVER; database = BLAH_DB; pooling = false; Time Time = 60; Integrated Security = SSPI;
Если в вашей строке отсутствует тег server
, тогда метод вернется с этой ошибкой.
Ссылка на полный путь sp разрешает эту проблему для меня:
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
Проверьте строку подключения, как я забыл добавить services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
Это вызывает ошибку, и здесь, когда я добавляю Configuration.GetConnectionString
, то это решает проблему
как сейчас связь:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
работает нормально (эта проблема решена для ядра .net)
У меня была та же проблема. Локально сайт работал нормально, но на лазурном уровне это не получилось с сообщением выше.
выясняется, что проблема заключалась в установке строки соединения в 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" />
Это также происходит при копировании веб-страницы из одного решения в другое, затем вы запускаете свое решение и узнаете, что оно имеет другое имя строки подключения в webconfig. Затем вы небрежно меняете имя строки подключения на панели свойств в окне дизайна страницы.
Лучше просто изменить его в части кода вместо дизайна.
У меня была такая же проблема, и, наконец, мне удалось решить ее следующим образом:
Проблема была в определении строки подключения в моем web.config.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
Это работало отлично, потому что я использовал локальную базу данных, когда я управлял пользователями и ролями. Когда я передал свое приложение в IIS, локальная БД была недоступна, кроме того, я хотел бы использовать свою БД в SQL Server. Поэтому я изменяю приведенную выше строку подключения следующим эквивалентом SQL Server DB:
<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-сервер из своего локального поля (в случае, если вы включите его в свой локальный web.config - именно это я и сделал в моем случае).
Моя проблема заключалась в том, что я добавил код ведения журнала базы данных в свой конструктор для объекта БД, и это, казалось, вызвало хаос в моем профиле развертывания azure.
FYI - я упростил этот пример, в реальном коде это было отключено в процессе производства (но все еще в коде)
public class MyDB : DbContext
{
public MyDB()
{
this.Database.Log = x => { Debug.WriteLine(x); };
}
}
У меня была опечатка в строках подключения "База данных == PESitecore1_master"
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
У меня возникла та же проблема, и я узнал, что при развертывании в IIS строки подключения не были правильно установлены. они были '$ (ReplacableToken_devConnection-Web.config Connection String_0) при просмотре строк подключения сайта в IIS вместо реальной строки подключения. Я их там обновил, и все заработало как положено
Я скопировал и вставил конфигурацию строки подключения в свой тестовый проект и начал сталкиваться с этой ошибкой. Строка подключения работала нормально в моем проекте WebAPI. Вот мое исправление.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
Я удалил " в конце строки подключения, и это сработало
Вместо
App=EntityFramework"
Используемый
App=EntityFramework;
<add name="DefaultConnection" connectionString="data source=(local);initial catalog=NamSdb;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.SqlClient" />
Примечание: в connectionString не входит:
| Х | Информация о метаданных: "metadata = res://*/"
| Х | Кодированные цитаты: "" "
Моя проблема заключалась не в том, что строка соединения, которую я предоставлял, была неправильной, или в том, что строка соединения в app.config, которую я думал, что я использовал, была неправильной, а в том, что я использовал неправильный app.config.
Иногда служба сервера Sql не запускается. Это может привести к ошибке. Зайдите в Сервисы и запустите Sql Server. Это должно заставить его работать.