Формат строки инициализации не соответствует спецификации, начинающейся с индекса 0

У меня есть приложение ASP.Net, которое отлично работает на моей локальной машине разработки.

Когда я запускаю это приложение онлайн, он показывает следующую ошибку

Формат строки инициализации не соответствует спецификации начиная с индекса 0

Ответ 1

Проверьте строку подключения. Если вам нужна помощь, проверьте Строки подключения, в котором есть список наиболее часто используемых.

Обычно используемые строки подключения:

SQL Server 2012

Стандартная безопасность

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;

SQL Server 2005

Стандартная безопасность

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;

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.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;

Ответ 2

Это может помочь кому-то. Мой пароль содержал точку с запятой, поэтому она столкнулась с этой проблемой. Так же добавлен пароль в кавычки. Это была глупая ошибка.

Я изменил следующее:

<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" />

Ответ 3

Задайте проект, содержащий класс DbContext в качестве запуска.

Я получал эту ошибку при вызове enable-migrations. Даже если в Package Manager Console я выбрал правильный Default project, он все еще смотрел файл web.config этого проекта запуска, где строка подключения отсутствовала.

Ответ 4

Убедитесь, что строка соединения находится в этом формате:

сервер= FOOSERVER; database = BLAH_DB; pooling = false; Time Time = 60; Integrated Security = SSPI;

Если в вашей строке отсутствует тег server, тогда метод вернется с этой ошибкой.

Ответ 5

Ссылка на полный путь sp разрешает эту проблему для меня:

var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)

Ответ 6

Проверьте строку подключения, как я забыл добавить services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));

Это вызывает ошибку, и здесь, когда я добавляю Configuration.GetConnectionString, то это решает проблему

как сейчас связь:

services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));

работает нормально (эта проблема решена для ядра .net)

Ответ 7

У меня была та же проблема. Локально сайт работал нормально, но на лазурном уровне это не получилось с сообщением выше.

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

    public DatabaseContext() 
    {
        Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
    }

НЕ работает, это будет:

    public DatabaseContext() : base("db")
    {
    }

Бьет меня..

Ответ 9

У меня была такая же ошибка. В моем случае это было связано с тем, что в строке соединения отсутствовала заключительная цитата для пароля.

Изменено из этого

<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" />

Ответ 10

Это также происходит при копировании веб-страницы из одного решения в другое, затем вы запускаете свое решение и узнаете, что оно имеет другое имя строки подключения в webconfig. Затем вы небрежно меняете имя строки подключения на панели свойств в окне дизайна страницы.

Лучше просто изменить его в части кода вместо дизайна.

Ответ 11

У меня была такая же проблема, и, наконец, мне удалось решить ее следующим образом:

Проблема была в определении строки подключения в моем 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 - именно это я и сделал в моем случае).

Ответ 12

Моя проблема заключалась в том, что я добавил код ведения журнала базы данных в свой конструктор для объекта БД, и это, казалось, вызвало хаос в моем профиле развертывания azure.

FYI - я упростил этот пример, в реальном коде это было отключено в процессе производства (но все еще в коде)

public class MyDB : DbContext
{
    public MyDB()
    {
         this.Database.Log = x => { Debug.WriteLine(x); };
    }
}

Ответ 13

У меня была опечатка в строках подключения "База данных == PESitecore1_master"

<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>

Ответ 14

У меня возникла та же проблема, и я узнал, что при развертывании в IIS строки подключения не были правильно установлены. они были '$ (ReplacableToken_devConnection-Web.config Connection String_0) при просмотре строк подключения сайта в IIS вместо реальной строки подключения. Я их там обновил, и все заработало как положено

Ответ 15

Я скопировал и вставил конфигурацию строки подключения в свой тестовый проект и начал сталкиваться с этой ошибкой. Строка подключения работала нормально в моем проекте WebAPI. Вот мое исправление.

var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));

Ответ 16

Я удалил &quot в конце строки подключения, и это сработало

Вместо

App=EntityFramework&quot;

Используемый

App=EntityFramework;

Установите DefaultConnection как показано ниже

<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://*/"
| Х | Кодированные цитаты: "" "

Ответ 17

Моя проблема заключалась не в том, что строка соединения, которую я предоставлял, была неправильной, или в том, что строка соединения в app.config, которую я думал, что я использовал, была неправильной, а в том, что я использовал неправильный app.config.

Ответ 18

Иногда служба сервера Sql не запускается. Это может привести к ошибке. Зайдите в Сервисы и запустите Sql Server. Это должно заставить его работать. enter image description here