Ответ 1
Разрешения на сервере SQL были неправильно настроены. Я разрешил это, правильно настроив разрешения сервера.
У меня есть приложение ASP.Net MVC, которое отлично работает на моей локальной машине разработки. Но при развертывании в IIS7 при попытке входа в систему появляется следующая ошибка:
Формат строки инициализации не соответствует спецификации начиная с индекса 0
Большинство людей, которые публикуют эту ошибку, разрешают это, изменяя их строку соединения каким-то образом. Однако моя строка подключения в локальном и развернутом приложении одинакова. Строка подключения выглядит так:
<add name="ApplicationServices" connectionString="Data Source=*server*\*instance*;Initial Catalog=*database*;Integrated Security=True;"
providerName="System.Data.SqlClient" />
Что вызывает эту ошибку в моем случае?
Разрешения на сервере SQL были неправильно настроены. Я разрешил это, правильно настроив разрешения сервера.
Формат строки инициализации не соответствует спецификации начиная с индекса 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());
Инструмент Web Deployment создал неправильную строку в config, когда я установил флажок Включить флажок "Перенос кода CodeFirst".
Убедитесь, что учетные данные верны для строки подключения в Web.config. Mine отсутствовал пароль для учетной записи с разрешениями к базе данных.
Я столкнулся с той же ошибкой. В моем случае это неправильное преобразование конфигурации. Существует проблема с конфигурационными преобразованиями, когда речь идет о строках подключения. Некоторая ссылка:
Также можно написать код на странице aspx.cs как
using (IDbConnection dbConnection =
new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
{
// TODO: Write SQL Stored Procedures or SQL Statements using Dapper
}
Для тех, кто хотел бы узнать больше о Dapper.
Надеюсь, что это поможет.
В моем случае я случайно написал "password:" вместо "password =" в строке подключения
Если вы использовали мастер публикации 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", ошибка больше не возникает.
У меня такая же проблема, когда я использую команду " Обновление-База данных" в консоли диспетчера пакетов.
Чтобы исправить, убедитесь, что проект запуска для проекта, который вы хотите обновить.
например. Я получил проект Db и веб-проект, убедитесь, что проект запуска в проекте Db при запуске " Обновление-База данных", в противном случае он попытается выполнить поиск внутри веб-проекта.