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

У меня есть приложение ASP.Net, которое отлично работает на моей локальной машине для разработки.

Когда я запускаю это приложение онлайн, оно показывает следующую ошибку

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

Ответы [ 16 ]

1 голос
/ 18 сентября 2018

Я скопировал и вставил конфигурацию строки подключения в свой тестовый проект и начал сталкиваться с этой ошибкой. Строка подключения работала нормально в моем проекте WebAPI. Вот мое исправление.

var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
1 голос
/ 15 января 2018

У меня была такая же проблема, я обнаружил, что при развертывании в IIS строки соединения не были правильно установлены. они были '$ (ReplacableToken_devConnection-Web.config Connection String_0) при просмотре строк подключения сайта в IIS вместо реальной строки подключения. Я их там обновил, и все заработало как положено

1 голос
/ 26 апреля 2016

В моих строках подключения была опечатка "База данных == PESitecore1_master"

<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
1 голос
/ 25 января 2016

Моя проблема заключалась в том, что я добавил код ведения базы данных в свой конструктор для объекта БД, и это, казалось, вызвало хаос в моем профиле развертывания Azure.

К вашему сведению - я упростил этот пример, в реальном коде это было отключено в производстве (но все еще в коде)

public class MyDB : DbContext
{
    public MyDB()
    {
         this.Database.Log = x => { Debug.WriteLine(x); };
    }
}
1 голос
/ 26 сентября 2015

У меня была такая же проблема, и, наконец, мне удалось решить ее следующим образом:

Проблема была в определении строки подключения в моем файле web.config.

<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>

Вышеописанное прекрасно работало локально, потому что я использовал локальную базу данных, когда управлял пользователями и ролями. Когда я перенес свое приложение в IIS, локальная БД перестала быть доступной, кроме того, я хотел бы использовать свою БД в SQL Server. Поэтому я изменяю приведенную выше строку подключения на следующий эквивалент БД SQL Server:

<add name="DefaultConnection" connectionString="data source=MY_SQL_SERVER; Initial Catalog=MY_DATABASE_NAME; Persist Security Info=true; User Id=sa;Password=Mybl00dyPa$$" providerName="System.Data.SqlClient"/>

ПРИМЕЧАНИЕ. Выше также предполагается, что вы собираетесь использовать тот же SQL Server из локального компьютера (в случае, если вы включите его в локальный файл web.config - именно это я и сделал в моем случае).

1 голос
/ 03 сентября 2015

Это также происходит, когда вы копируете веб-страницу из одного решения в другое, затем запускаете свое решение и обнаруживаете, что у него есть другое имя строки подключения в веб-конфигурации. Затем вы небрежно меняете имя строки подключения на панели свойств в режиме конструктора страницы.

Лучше просто изменить его в части кода вместо дизайна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...