Как исправить ошибку :: Формат строки инициализации не соответствует спецификации, начиная с индекса 0 :: - PullRequest
15 голосов
/ 28 января 2012

Я загрузил свой сайт на общий хостинг 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);...

Ответы [ 16 ]

17 голосов
/ 28 января 2012

Это может помочь увидеть, какова фактическая строка подключения. Добавить в Global.asax:

throw new Exception(ConfigurationManager.ConnectionStrings["mcn"].ConnectionString);

Если фактическая строка соединения равна $(ReplacableToken_mcn-Web.config Connection String_0), это объяснит проблему.

5 голосов
/ 19 сентября 2012

Я столкнулся с той же проблемой и обнаружил, что в строке подключения есть дополнительный символ двойной кавычки в середине строки подключения.

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

Первоначально я вызывал значение строки подключения, как показано ниже (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
2 голосов
/ 14 мая 2017

У меня возникла та же проблема при доступе к опубликованному ASP.NET Web Api.В моем случае я понял, что когда я собирался опубликовать Web Api, я не указал строку подключения в разделе Базы данных:

After using the three dot button, the connection string will be displayed on the text field to the left

Поэтому я сгенерировал его, используя кнопку с тремя точками, и после публикации он заработал.

Что странно, так это то, что долгое время я был уверен, что в этой конфигурации не было строки подключения, но она все еще работала,

2 голосов
/ 25 сентября 2015

У меня было это в VS2015, и я решил изменить первую строку в моем WebConfig с

<?xml version="1.0" encoding="utf-8"?>

на

<?xml version="1.0"?>

Curious.

1 голос
/ 24 августа 2017

Для моего случая виновником стала точка с запятой и двойные кавычки в пароле для prod DB. Наша команда ИТ-специалистов использует какой-то инструмент для генерации паролей, поэтому он создал один с точкой с запятой и двойными кавычками Строка подключения выглядит как

<add key="BusDatabaseConnectionString" value="Data Source=myserver;Initial Catalog=testdb;User Id=Listener;Password=BlaBla"';[]qrk/>

Получил пароль изменен, и он работал.

1 голос
/ 30 декабря 2013

Еще один подводный камень: connectionString иногда ссылается на имя строки подключения в app / web-config, а иногда на саму строку подключения и наоборот.

Очень легко исправить, но иногда трудно обнаружить.

0 голосов
/ 01 марта 2019

У меня было такое же сообщение об ошибке в моей локальной разработке с моей Visual Studio.Обратите внимание, что все работало при выпуске с Microsoft Release Management (MRM).Я исправил свою ситуацию, изменив начальное значение, которое было ссылкой на MRM.

Исходное значение моего App.config было следующим:

  <connectionStrings>
    <add name="BDORA" connectionString="__token3__" />
  </connectionStrings>

Локально, выполнение приложения не может интерпретировать токен3ссылка на его реальное значение в Tokens.xml.Чтобы это работало на моем локальном хосте, мне пришлось принудительно ввести значение из token3 в Tokens.xml в файл App.config.

0 голосов
/ 03 октября 2017

Если вы используете EF и Publish Profiles, в вашем профиле публикации может быть пустая строка подключения.Раздражает, но вполне возможно.

0 голосов
/ 25 июля 2017

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

...