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

Deployment 初始化字符串的格式不符合从索引0开始的规范,deployment,iis-7,asp.net-mvc-3,connection-string,Deployment,Iis 7,Asp.net Mvc 3,Connection String,我有一个ASP.NETMVC应用程序,它在本地开发机器上运行良好。但当部署到IIS7时,尝试登录时会出现以下错误: 初始化字符串的格式不符合规范 从索引0开始 大多数发布此错误的人通过以某种方式更改连接字符串来解决此问题。但是,本地应用程序和已部署应用程序上的连接字符串是相同的。连接字符串如下所示: <add name="ApplicationServices" connectionString="Data Source=*server*\*instance*;Initial Catalo

我有一个ASP.NETMVC应用程序,它在本地开发机器上运行良好。但当部署到IIS7时,尝试登录时会出现以下错误:

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

大多数发布此错误的人通过以某种方式更改连接字符串来解决此问题。但是,本地应用程序和已部署应用程序上的连接字符串是相同的。连接字符串如下所示:

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


在我的案例中,是什么导致了此错误?

SQL server上的权限设置不正确。我现在通过正确设置服务器权限解决了这个问题

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

Web.config:

<connectionStrings>
    <add name="TestDataConnectionString" connectionString="Data Source=.\SQLExpress;Initial Catalog=TestData;User ID=satest;Password=satest"
     />
  </connectionStrings>
SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["TestDataConnectionString"].ToString());

检查以确保Web.config中连接字符串的凭据正确。我的帐户缺少对数据库具有权限的帐户的密码。

我遇到了相同的错误。在我的例子中,是配置转换工作不正常。 当涉及到连接字符串时,配置转换存在问题。 一些参考:

还可以在aspx.cs页面中编写以下代码:

using (IDbConnection dbConnection =
       new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
       {
           // TODO: Write SQL Stored Procedures or SQL Statements using Dapper
       }
对于那些想了解更多的人


希望这能有所帮助。

当我选中启用CodeFirst迁移复选框时,Web部署工具在配置中创建了错误的行。

在我的例子中,我不小心写了“password:”而不是“password=”在我的连接字符串中

如果您一直在使用Visual Studio发布向导进行部署,并且选中了设置中的执行代码优先迁移复选框,则会自动将新的连接字符串添加到服务器Web.config文件中,类似于下面的第2行:

<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" />

首先,请注意添加的连接字符串包含“ConnectionString”:我认为它应该是“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开始的规范”错误不再发生。

    当我在Package Manager控制台中使用命令:“更新数据库”时,我也有同样的问题

    要修复此问题,请确保将启动项目设置为要更新的项目


    例如,我得到了Db项目和Web项目,请确保在运行“更新数据库””时,在Db项目上设置启动项目,否则,它将尝试在Web项目内部搜索。

    SQL权限有什么不正确之处导致它出现不一致的连接字符串错误?很抱歉,我不再有权访问此项目。我所能说的是,对于遇到此问题的人来说,一个可能的步骤是检查他们的SQL Server权限是否按他们期望的方式设置。这可能不是导致此问题的唯一原因,很抱歉,我无法再提供有关此问题的任何进一步信息。使用“启用代码优先迁移”复选框时,需要在发布向导中填写产品连接字符串。可能存在重复的