初始化string的格式不符合从索引0开始的规范

我有一个ASP.Net应用程序在我的本地开发机器上运行良好。

当我在线运行此应用程序时,它显示以下错误

初始化string的格式不符合从索引0开始的规范

检查你的连接string。 如果您需要帮助,请检查连接string ,它有一个常用的列表。

常用的连接string:

SQL Server 2012

标准安全

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword; 

可信连接

 Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; 

连接到SQL Server实例

服务器选项中使用的服务器/实例名称语法对于所有SQL Server连接string都是相同的。

 Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername; Password=myPassword; 

SQL Server 2005

标准安全

 Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword; 

可信连接

 Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; 

连接到SQL Server实例

服务器选项中使用的服务器/实例名称语法对于所有SQL Server连接string都是相同的。

 Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword; 

MySQL的

标准

 Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

指定TCP端口

 Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

神谕

使用TNS

 Data Source=TORCL;User Id=myUsername;Password=myPassword; 

使用集成安全性

 Data Source=TORCL;Integrated Security=SSPI; 

使用没有tnsnames.ora的ODP.NET

 Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword; 

将包含DbContext类的项目设置为启动项目。

调用enable-migrations出现这个错误。 即使在Package Manager Console我select了正确的Default project ,它仍然在查看该启动项目的web.config文件,其中连接string不存在。

引用完整的sppath为我解决了这个问题:

 var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn) 

确保您的连接string是这种格式:

server = FOOSERVER; database = BLAH_DB; pooling = false; Connect Timeout = 60; Integrated Security = SSPI;

如果你的string缺lessserver标签,那么该方法将返回这个错误。

当您将网页从一个解决scheme复制到另一个解决scheme时,也会发生这种情况,然后运行解决scheme,并发现它在webconfig中具有不同的连接string名称。 然后在页面的devise视图的属性面板中不小心更改连接string的名称。

最好在代码部分而不是devise中更改它。

我的问题是我添加数据库日志logging代码到我的DB对象的构造函数,这似乎对我的azure色的部署configuration文件造成严重破坏。

仅供参考 – 我简化了这个例子,在真正的代码中这是closures的生产(但仍在代码中)

 public class MyDB : DbContext { public MyDB() { this.Database.Log = x => { Debug.WriteLine(x); }; } } 

我在连接string“Database == PESitecore1_master”

 <add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/> 

我有同样的问题,最后我设法解决它在以下方面:

问题出在我的web.config中的连接string定义。

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

上面的工作完美的本地,因为我pipe理用户和angular色时使用本地数据库。 当我将应用程序传输到IIS时,本地数据库不再可访问,另外我想在SQL Server中使用我的数据库。 所以我改变了上面的连接string与下面的SQL Server DB等价物:

 <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中 – 那正是我在我的例子中所做的)。

我有同样的问题。 本地的网站运行良好,但在azure色的时候,它会失败,上面的消息。

事实certificate问题是设置连接string,如下所示:

  public DatabaseContext() { Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString; } 

不工作,这将会:

  public DatabaseContext() : base("db") { } 

打败我..

我通过更改我的ASP.NET Web Api的发布设置上的连接string来解决此问题。

检查我的答案在这个职位: 如何修复错误::初始化string的格式不符合从索引0开始的规范::

我有同样的错误。 在我的情况下,这是因为我错过了连接string中密码的结尾报价。

由此改变

 <add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient" /> 

 <add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient" /> 

这可能有助于某人..我的密码包含一个分号,所以正面临着这个问题。因此,在引号中添encryption码。 这真是一个愚蠢的错误。

我改变了以下内容:

 <add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient" /> 

 <add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;word'" providerName="System.Data.SqlClient" />