Формат строки инициализации не соответствует спецификации, начиная с индекса 0 - PullRequest
18 голосов
/ 07 марта 2011

У меня есть приложение ASP.Net MVC, которое отлично работает на моей локальной машине для разработки. Но при развертывании в IIS7 выдает следующую ошибку при попытке входа в систему:

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

Большинство людей, которые публикуют эту ошибку, исправляют ее, изменяя каким-либо образом строку подключения. Однако моя строка подключения в локальном и развернутом приложении одинакова. Строка подключения выглядит следующим образом:

<add name="ApplicationServices" connectionString="Data Source=*server*\*instance*;Initial Catalog=*database*;Integrated Security=True;"
      providerName="System.Data.SqlClient" />

Что вызывает эту ошибку в моем случае?

Ответы [ 8 ]

16 голосов
/ 08 июня 2012

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

Web.config:

<connectionStrings>
    <add name="TestDataConnectionString" connectionString="Data Source=.\SQLExpress;Initial Catalog=TestData;User ID=satest;Password=satest"
     />
  </connectionStrings>

На странице aspx.cs код должен быть написан в следующем формате:

SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["TestDataConnectionString"].ToString());
12 голосов
/ 22 марта 2014

Инструмент веб-развертывания создал неправильную строку в конфигурации, когда я установил флажок Включить CodeFirst Migrations.

2 голосов
/ 28 октября 2015

В моем случае я случайно написал "пароль:" вместо "пароль =" в моей строке conn

1 голос
/ 10 января 2017

Если для развертывания вы использовали мастер публикации Visual Studio и отметили флажок Выполнить код при первой миграции в настройках, новая строка ConnectionString автоматически добавляется в файл Server Web.config, аналогично t 2-я строка ниже:

<add name="LCWeb3Context" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=LCWeb3;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\LCWeb3.mdf" providerName="System.Data.SqlClient" />
<add name="LCWeb3Context_DatabasePublish" connectionString="LCWeb3Context_DatabasePublish.ConnetionString" providerName="System.Data.SqlClient" />

Во-первых, обратите внимание, что добавленная строка подключения содержит «ConnetionString»: я думаю, что это должна быть «ConnectionString»! Но это не решение.

Чтобы избежать ошибки «Формат строки инициализации не соответствует спецификации, начинающейся с индекса 0», выполните следующие действия в мастере публикации:

  1. В Настройки выберите Конфигурация: Выпуск
  2. В настройках не забудьте вставить строку подключения в Поле « Remote Connection String »
  3. В Настройки , установите флажок Выполнить код первой миграции

При выполнении вышеизложенного строка подключения, добавляемая к Server Web.config , выглядит следующим образом:

<add name="LCWeb3Context_DatabasePublish" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LCWeb3.mdf;Initial Catalog=LCWeb3;Integrated Security=True" providerName="System.Data.SqlClient" />

и ошибка «Формат строки инициализации не соответствует спецификации, начиная с индекса 0», больше не возникает.

1 голос
/ 11 октября 2013

Я столкнулся с той же ошибкой. В моем случае это было преобразование конфигурации, не работающее должным образом. Существует проблема с преобразованиями конфигурации, когда речь идет о строках подключения. Некоторая ссылка:

Также можно написать код на странице aspx.cs как

using (IDbConnection dbConnection =
       new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
       {
           // TODO: Write SQL Stored Procedures or SQL Statements using Dapper
       }

Для тех, кто хотел бы узнать больше о Dapper .

Надеюсь, это поможет.

1 голос
/ 19 июля 2012

Убедитесь, что учетные данные верны для строки подключения в Web.config.У меня не было пароля для учетной записи с разрешениями на базу данных.

0 голосов
/ 09 ноября 2017

У меня та же проблема, когда я использую команду: " Update-Database " в консоли диспетчера пакетов.

Чтобы исправить, убедитесь, что запускает проект для проекта, который вы хотите обновить.

например. У меня есть проект Db и веб-проект, убедитесь, что при запуске « Update-Database » установите автозапуск проекта для проекта Db, в противном случае он попытается выполнить поиск внутри веб-проекта.

0 голосов
/ 25 апреля 2011

Неправильно настроены разрешения на сервере SQL.Теперь я решил эту проблему, правильно настроив разрешения для сервера.

...