初始化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" />