我有一个ASP.Net MVC应用程序,它在我的本地开发机器上运行良好 . 但是当部署到IIS7时,在尝试登录时出现以下错误:
初始化字符串的格式不符合从索引0开始的规范
发布此错误的大多数人通过以某种方式更改其连接字符串来解决此问题 . 但是,本地和已部署应用程序上的连接字符串是相同的 . 连接字符串是这样的:
<add name="ApplicationServices" connectionString="Data Source=*server*\*instance*;Initial Catalog=*database*;Integrated Security=True;"
providerName="System.Data.SqlClient" />
在我的情况下导致此错误的原因是什么?
8 回答
Web.config :
In aspx.cs Page the code must be written in the below format :
当我选中“启用CodeFirst迁移”复选框时,Web部署工具在配置中创建了错误的行 .
检查以确保Web.config中的连接字符串的凭据正确 . 我错过了具有数据库权限的帐户的密码 .
我遇到了同样的错误 . 在我的情况下,配置转换无法正常工作 . 连接字符串时,配置转换存在问题 . 一些参考:
MSBuild web.config transforms not working by drneel
Replaceable token issue with config ConnectionString transforms by Francis
也可以在aspx.cs页面中编写代码
对于那些想了解更多关于Dapper的人 .
希望这可以帮助 .
在我的情况下,我不小心在我的conn字符串中写了“password:”而不是“password =”
如果您一直使用Visual Studio发布向导进行部署并选中“设置”中的 Execute Code First Migrations 复选框,则会自动将新的ConnectionString添加到Server Web.config文件中,类似于下面的第2行:
首先,注意添加的连接字符串包含“ConnetionString”:我认为它应该是“ConnectionString”!但那不是解决方案 .
要避免“初始化字符串的格式不符合从索引0开始的规范”错误,请在“发布向导”中执行以下操作:
在 Settings 中,选择 Configuration: Release
在 Settings 中,不要忘记将连接字符串粘贴到“ Remote Connection String ”字段中
在 Settings 中,选中 Execute Code First Migrations
执行上述操作时,添加到 Server Web.config 的连接字符串读取:
并且“不再出现”初始化字符串的格式不符合从索引0开始的规范“错误 .
我在包管理器控制台中使用命令:“ Update-Database ”时遇到了同样的问题 .
要修复,请确保将 startup project 设置为要更新的项目 .
例如 . 我得到了Db项目和Web项目,确保在Db项目上设置 startup project ,当运行“ Update-Database ”时,否则,它将尝试在Web项目内搜索 .
未正确设置SQL Server上的权限 . 我现在通过正确设置服务器权限解决了这个问题 .