Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

Разрешения на сервере SQL были неправильно настроены. Я разрешил это, правильно настроив разрешения сервера.

Ответ 2

Формат строки инициализации не соответствует спецификации начиная с индекса 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());

Ответ 3

Инструмент Web Deployment создал неправильную строку в config, когда я установил флажок Включить флажок "Перенос кода CodeFirst".

Ответ 4

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

Ответ 5

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

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

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

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

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

Ответ 6

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

Ответ 7

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

<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", выполните следующие действия в Мастере публикации:

  • В Настройки выберите Конфигурация: Отпустить
  • В Настройки не забудьте вставить строку подключения в " Строка удаленного подключения
  • В Настройки установите флажок Выполнять первые мигры кода

При выполнении вышеописанной строки подключения, добавленной в Сервер 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", ошибка больше не возникает.

Ответ 8

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

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

например. Я получил проект Db и веб-проект, убедитесь, что проект запуска в проекте Db при запуске " Обновление-База данных", в противном случае он попытается выполнить поиск внутри веб-проекта.