Как исправить ошибку:: Формат строки инициализации не соответствует спецификации, начинающейся с индекса 0::
Я загрузил свой сайт на общем сервере godaddy. я может получить доступ к этой базе данных из моей студии управления. Я не могу получить доступ к этой базе данных с моего сайта. Я получаю следующую ошибку:
Формат строки инициализации не соответствует спецификации, начинающейся с индекса 0.
Моя строка подключения находится в файле web.config и выглядит следующим образом:
<connectionStrings>
<add name="mcn" connectionString="Data Source=mydatabase.db.8706856.hostedresource.com; Initial Catalog=mydatabase; User ID=username; Password=xyz;" providerName="System.Data.SqlClient" />
</connectionStrings>
В чем причина этой ошибки? Я также попытался написать ...Data Source=(local);...
Ответы
Ответ 1
Это может помочь узнать, что такое фактическая строка подключения. Добавить в Global.asax:
throw new Exception(ConfigurationManager.ConnectionStrings["mcn"].ConnectionString);
Если фактическая строка соединения $(ReplacableToken_mcn-Web.config Connection String_0)
, это объясняет проблему.
Ответ 2
Я столкнулся с той же проблемой и выяснил, что в моей строке соединения был добавлен дополнительный символ двойной кавычки в середине строки подключения.
Ответ 3
Я изначально вызывал значение строки подключения, как показано ниже (VB.NET), и получил упомянутую ошибку
Using connection As New SqlConnection("connectionStringName")
'// more code would go here...
End Using
добавление ссылки на System.Configuration и обновление моего кода, как показано ниже, было моим решением. Строка подключения не была проблемой, поскольку другие элементы управления использовали ее без каких-либо проблем (SqlDataSource)
Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString)
'// more code would go here...
End Using
Ответ 4
У меня это было в VS2015, и мое исправление заключалось в том, чтобы изменить первую строку в моем WebConfig из
<?xml version="1.0" encoding="utf-8"?>
к
<?xml version="1.0"?>
Любопытный.
Ответ 5
У меня была такая же проблема при доступе к опубликованному ASP.NET Web Api. В моем случае я понял, что когда я собирался опубликовать Web Api, я не указал строку подключения в разделе "Базы данных":
![После использования трехточечной кнопки строка подключения будет отображаться в текстовом поле на левый]()
Итак, я сгенерировал его с помощью трехточечной кнопки, и после публикации он работал.
Что странно, так это то, что в течение долгого времени я уверен, что в этой конфигурации нет строки соединения, но она все еще работает.
Ответ 6
Другая ошибка заключается в том, что connectionString
иногда ссылается на имя строки подключения в app/web-config, а иногда на фактическую строку соединения и наоборот.
Очень легко исправить, но иногда трудно определить.
Ответ 7
Моя проблема заключалась в том, что мой файл web.config содержал ссылку на соединение с удаленной сущностью, поэтому проверьте, нет ли устаревших строк подключения.
Ответ 8
При попытке запустить приложение я получил ошибку ниже:
Формат строки инициализации не соответствует спецификации, начинающейся с индекса 57.
И во время моего исследования я нашел этот стек, и я смог исправить эту ошибку, посмотрев файл конфигурации сети и обнаружив, что в passowrd есть дополнительная строка. Как только я удалил строку, я смог получить доступ к веб-сайту без каких-либо ошибок.
Ответ 9
Я получал это исключение, исправил его, добавив throwIfV1Schema: false
в свой конструктор DbContext:
public class AppDb : IdentityDbContext<User>
{
public AppDb()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
}
Ответ 10
Для тех, кто может наткнуться на этот поток, пытаясь исправить ту же ошибку, которая возникает при запуске Enable-Migrations
, скорее всего, ни одно из вышеперечисленных решений вам не поможет (я попробовал их все).
Я столкнулся с этой же проблемой в Web API 2 после запуска этого в консоли PM:
Enable-Migrations -EnableAutomaticMigrations -ConnectionString IdentityConnection -ConnectionProviderName System.Data.SqlClient -Force
Я исправил его, изменив его, чтобы на самом деле использовать ApplicationDbContext
, созданный в IdentityModels
.
Enable-Migrations -ContextTypeName ApplicationDbContext -EnableAutomaticMigrations -Force
Интересно, что эта ссылка не только ссылается на одну и ту же точную строку соединения, но и на конструктор, включающий код, который 4castle сказал, является потенциальным исправлением (т.е. предложением throwIfV1Schema: false
.
Обратите внимание, что параметр -Force
используется только потому, что файл Configuration.cs
уже существует.
Ответ 11
Я потратил 1,5 рабочих дня на эту ошибку, и в конце концов коллега решил проблему, заменив User Id на Uid и пароль Pwd. Обновленная строка подключения для .Net была для меня ошибкой
Ответ 12
Ни одно из перечисленных решений в этой теме не работало для меня. Я начал получать эту ошибку после внесения некоторых изменений в строку строк подключения файла web.config. (Мое приложение подключается к нескольким базам данных.) Я тщательно изучил, какие изменения я сделал, понял, что я удалил тег в верхней части списка. Я вернул тег в верхней части списка строк подключения, и проблема сразу исчезла. Этот сайт, получивший ошибку, представляет собой приложение, которое находится ниже основного сайта (https://www.domain.org/MySite). Это может не решить проблему для всех, но она решила проблему для меня.
Ответ 13
В ApplicationDbContext.cs - у меня была опечатка в строке подключения.
: (
Ответ 14
Нежелательная одиночная кавычка была моей проблемой.
Проверка строки подключения из местоположения индекса, упомянутого в строке ошибки, помогла мне выявить проблему.
Ответ 15
В моем случае виновником была точка с запятой и двойные кавычки в пароле для базы данных prod. Наша ИТ-команда использует некоторый инструмент для генерации паролей, поэтому он сгенерировал один с точкой с запятой и двойными кавычками
Connectionstring выглядит как
<add key="BusDatabaseConnectionString" value="Data Source=myserver;Initial Catalog=testdb;User Id=Listener;Password=BlaBla"';[]qrk/>
Получил пароль, и он сработал.
Ответ 16
Если вы используете EF и Publish Profiles, вы можете иметь пустую строку строки подключения в своем публичном профиле. Раздражает, но вполне возможно.