Формат строки инициализации не соответствует спецификации, начиная с индекса 0 - PullRequest
105 голосов
/ 23 ноября 2011

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

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

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

Ответы [ 16 ]

150 голосов
/ 23 ноября 2011

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

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

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;
10 голосов
/ 19 ноября 2017

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

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

<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" />
10 голосов
/ 24 мая 2016

Установите проект, содержащий ваш класс DbContext, в качестве запускаемого проекта.

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

3 голосов
/ 06 июня 2018

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

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

как сейчас соединение:

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

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

3 голосов
/ 16 сентября 2013

Убедитесь, что строка подключения имеет следующий формат:

сервер = FOOSERVER; база данных = BLAH_DB; пул = ложь; время ожидания подключения = 60; встроенная защита = SSPI;

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

3 голосов
/ 03 июня 2013

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

var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
2 голосов
/ 17 августа 2017

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

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

<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" />
2 голосов
/ 14 мая 2017

Я решил эту проблему, изменив строку подключения в настройках публикации моего ASP.NET Web Api.

Проверьте мой ответ на этот пост: Как исправить ошибку :: Формат строки инициализациине соответствует спецификации, начиная с индекса 0 ::

2 голосов
/ 30 сентября 2016

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

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

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

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

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

Бьет меня ..

1 голос
/ 07 июня 2019

Я удалил & 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" />

Примечание: в строку подключения не включается:
| Х | Информация о метаданных: "metadata = res: // * /"
| Х | Кодированные цитаты: "" "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...