У меня есть приложение ASP.NET, которое отлично работает на моей локальной машине разработки.
Когда я запускаю это приложение онлайн, оно показывает следующую ошибку:
Формат строки инициализации не соответствует спецификации, начиная с индекса 0
Почему это появляется и как это исправить?
c#
asp.net
sql-server-2008
GS Bhangal
источник
источник
Ответы:
Проверьте строку подключения. Если вам нужна помощь, проверьте строки подключения , в которых есть список наиболее часто используемых.
Обычно используемые строки подключения:
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
Использование встроенной безопасности
Использование 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 этого запускаемого проекта, в котором не было строки подключения.источник
Убедитесь, что ваша строка подключения имеет следующий формат:
Если в вашей строке отсутствует
server
тег, метод вернется с этой ошибкой.источник
У меня такая же проблема. Локально сайт работал нормально, но на лазурном он не работал с сообщением выше.
оказывается, проблема заключалась в установке строки подключения в ctor, например:
public DatabaseContext() { Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString; }
НЕ работает, это будет:
public DatabaseContext() : base("db") { }
Бьет меня ..
источник
Проверьте строку подключения, как будто я забыл добавить
services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
Это вызывает ошибку, и здесь, когда я добавляю
Configuration.GetConnectionString
, она решает проблемукак сейчас соединение:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
работает нормально (эта проблема решена для ядра .net)
источник
Ссылка на полный путь sp решила для меня эту проблему:
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
источник
Я решил эту проблему, изменив строку подключения в настройках публикации моего 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. Затем вы небрежно меняете имя строки подключения на панели свойств в режиме просмотра страницы.
Лучше просто изменить это в коде, а не в дизайне.
источник
Моя проблема заключалась в том, что я добавил код ведения журнала базы данных в свой конструктор для объекта БД, и это, похоже, вызвало хаос в моем профиле развертывания Azure.
К вашему сведению - я упростил этот пример, в реальном коде это было отключено в производстве (но все еще в коде)
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"/>
источник
У меня была такая же проблема, и, наконец, мне удалось решить ее следующим образом:
Проблема заключалась в определении строки подключения в моем файле web.config.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
Вышеупомянутое отлично работало локально, потому что я использовал локальную базу данных, когда управлял пользователями и ролями. Когда я перенес свое приложение в IIS, локальная БД была больше недоступна, вдобавок я хотел бы использовать свою БД в SQL Server. Поэтому я меняю указанную выше строку подключения на следующий эквивалент базы данных SQL Server:
<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 из своего локального ящика (в случае, если вы включите его в свой локальный файл web.config - это именно то, что я сделал в моем случае).
источник
У меня была такая же проблема, я обнаружил, что развертывание в IIS неправильно установило строки подключения. они были «$ (ReplacableToken_devConnection-Web.config Connection String_0)» при просмотре строк подключения сайта в IIS вместо фактической строки подключения. Я их там обновил, и все заработало как положено
источник
Я скопировал и вставил конфигурацию строки подключения в свой тестовый проект и столкнулся с этой ошибкой. Строка подключения отлично работала в моем проекте WebAPI. Вот мое исправление.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"]; var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
источник
Я удалил & quot в конце строки подключения, и это сработало
Вместо того
App=EntityFramework"
Используемый
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" />
источник
В моем случае возникла аналогичная ошибка:
Приложение создало необработанное исключение. System.ArgumentException: формат строки инициализации не соответствует спецификации, начиная с индекса 91.
Я меняю строку подключения с:
Сервер = .; База данных = dbname; Идентификатор пользователя = myuserid; Пароль = mypassword "
кому:
Сервер = .; База данных = dbname; Идентификатор пользователя = myuserid; Пароль = 'mypassword' "
и он работает, я добавил к паролю одинарные кавычки.
источник
Моя проблема заключалась не в том, что строка подключения, которую я предоставлял, была неправильной или что строка подключения в app.config, которую я думал, что я использовал, была неправильной, а что я использовал неправильный app.config.
источник
Иногда служба Sql Server не запускается. Это может вызвать ошибку. Перейдите в Сервисы и запустите Sql Server. Это должно заставить его работать.
источник
Для еще одной несчастной души, которая управляет устаревшим приложением веб-форм, которое использует встроенный sqldatasource вместе со строками подключения, хранящимися в web.config, вы можете получить эту ошибку, если получите доступ к строке подключения, такой как <% APSDataConnectionString%> вместо < % $ ConnectionStrings: MyConnectionString%>. Это случилось с нами при обновлении .NET с 3.5 до 4.x.
<asp:DropDownList ID="ddl" runat="server" DataSourceID="SqlDataSource1" DataTextField="value" DataValueField="id"></asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="select id, value from a_table"> </asp:SqlDataSource>
источник
В моем случае проблема заключалась в том, что на сервере приложением использовался другой файл appsettings.json.
источник
У меня тоже была эта ошибка, и я смог ее решить следующим образом: я ранее записал строку подключения в appsettings.json в созданный мной раздел (ConnectionsStrings (обратите внимание на дополнительные буквы "s") и попытался подключиться к моей базе данных, что вызвало ошибка. Это было приложение ASP.NET CORE, поэтому я хотел подключиться к нему с помощью метода .GetConnectionString (подробности здесь ). Кажется, что этот метод неявно ищет строку подключения в разделе «ConnectionStrings», что не не существует. Когда я изменил / исправил его на "ConnectionStrings", он работал, как ожидалось.
источник
Насколько я знаю, всякий раз, когда у вас есть более 1 строки подключения в вашем решении (ваш текущий проект, запускаемый проект, ...), вы можете столкнуться с этой ошибкой.
эта ссылка может помочь вам нажать
источник