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


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

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

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

15 83

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