У мене є програма ASP.Net, яка добре працює на моїй локальній машині розвитку.
Коли я запускаю цю програму в Інтернеті, вона показує таку помилку
Формат рядка ініціалізації не відповідає специфікації, що починається з індексу 0
У мене є програма ASP.Net, яка добре працює на моїй локальній машині розвитку.
Коли я запускаю цю програму в Інтернеті, вона показує таку помилку
Формат рядка ініціалізації не відповідає специфікації, що починається з індексу 0
Відповіді:
Перевірте свій рядок з'єднання. Якщо вам потрібна допомога, перевірте Connection Strings , у якому є список часто використовуваних.
Поширені рядки з'єднання:
Стандартна безпека
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 цього проекту запуску, де рядок з'єднання не було.
У мене була така ж проблема. Локально сайт працював нормально, але в лазурі він не вдасться із повідомленням, поданим вище.
Виявляється, проблемою було встановлення шнура підключення в 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 core)
Я вирішив це, змінивши рядок підключення в налаштуваннях публікації мого 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. Тоді ви необережно змінюєте назву рядка з'єднання на панелі властивостей у дизайнерському вікні сторінки.
Краще просто змінити його в кодовій частині замість дизайну.
Моя проблема полягала в тому, що я додав код реєстрації бази даних до свого конструктора для об’єкта DB, і це, здавалося, спричинило хаос у моєму профілі розгортання лазуру.
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"/>
У мене була така ж проблема, і нарешті мені вдалося її вирішити наступним чином:
Проблема була у визначенні рядка з'єднання в моєму 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-сервер у своєму локальному вікні (якщо ви включите його у свій локальний 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;
<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" />
Примітка: У ConneString Не включайте:
| x | Інформація про метадані: "метадані = res: // * /"
| x | Кодовані котирування: "" "
Моя проблема полягала не в тому, що рядок підключення, яку я надав, був неправильним, або те, що рядок підключення в app.config, я вважав, що використовую, був невірним, а в тому, що я використовував неправильну app.config.
Іноді послуга сервера Sql не була запущена. Це може призвести до помилки. Перейдіть до Служб та запустіть сервер Sql. Це має змусити його працювати.
Для тієї іншої нещасної душі, яка керує застарілим додатком веб-форм, який використовує вбудований 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.
У моєму випадку я отримав подібну помилку:
Додаток було зафіксовано без поводження. System.ArgumentException: Формат рядка ініціалізації не відповідає специфікації, починаючи з індексу 91.
Я змінюю рядок з'єднання з:
Сервер =; База даних = dbname; ідентифікатор користувача = мійсерид; пароль = мій пароль "
до:
Сервер =; База даних = dbname; ідентифікатор користувача = мійсерид; пароль = 'мій пароль' "
і це працює, я додав до пароля одинарні лапки.
У мене була і ця помилка, і я зміг її вирішити наступним чином: раніше я записав stringstring до appsettings.json в розділ, який я створив (ConnectionsStrings (помічаю додаткові "s") і намагався підключитися до моєї бази даних, яка спричинила Помилка. Це була програма ASP.NET CORE, і тому я хотів з'єднатись із нею методом .GetConnectionString (детальніше про це тут ). Схоже, цей метод неявно шукає з'єднання- рядок у розділі "ConnectionStrings", який не зробив Коли я змінив / виправив його на "ConnectionStrings", він працював як очікувалося.
Як я знаю, щоразу, коли у вашому рішенні є більше 1 рядка підключення (ваш поточний проект, проект запуску, ...), ви можете зіткнутися з цією помилкою
це посилання може допомогти вам натиснути