我试图部署包含数据库的第一个网站。测试本地版本具有以下连接字符串
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;IntegratedSecurity=SSPI;
AttachDBFilename=|DataDirectory|\aspnetdb.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
<add name="ConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\AHData.mdf;IntegratedSecurity=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
我在网络托管公司服务器上设置了数据库,他们给了我以下连接字符串
Provider=sqloledb;Data Source=db479427514.db.1and1.com,1433;Initial Catalog=db479427514;User Id=dbo479427514;Password=****;
Provider=sqloledb;Data Source=db479427535.db.1and1.com,1433;Initial Catalog=db479427535;User Id=dbo479427535;Password=****;
当我使用
替换新服务器的本地测试连接字符串时<connectionStrings>
<add name="ApplicationServices"
connectionString="Provider=sqloledb;Data Source=db479427535.db.1and1.com,1433;Initial Catalog=db479427535;User Id=dbo479427535;Password=**I've used real password!**;"
providerName="System.Data.SqlClient" />
<add name="ConnectionString"
connectionString="Provider=sqloledb;Data Source=db479427514.db.1and1.com,1433;Initial Catalog=db479427514;User Id=dbo479427514;Password=**I've used real password!**;"
providerName="System.Data.SqlClient" />
</connectionStrings>
我收到以下错误
不支持关键字:&#39;提供商&#39;。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:不支持关键字:&#39;提供商&#39;。
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
[ArgumentException:不支持关键字:&#39;提供商&#39;。]
[ArgumentException:尝试初始化System.Data.SqlClient.SqlConnection对象时发生错误。为连接字符串提供的值可能有误,或者可能包含无效的语法 参数名称:connectionString]
有谁能告诉我这里有什么问题?
答案 0 :(得分:2)
尝试删除连接字符串的“提供者”部分:
<add name="ApplicationServices" connectionString="Provider=sqloledb;Data Source=db479427535.db.1and1.com,1433;Initial Catalog=db479427535; User Id=dbo479427535;Password=**I've used real password!**;" providerName="System.Data.SqlClient" />
变为
<add name="ApplicationServices" connectionString="Data Source=db479427535.db.1and1.com,1433;Initial Catalog=db479427535;User Id=dbo479427535;Password=**I've used real password!**;" providerName="System.Data.SqlClient" />
因为提供者名称是在它自己的名称 - 值对(providerName=
)中指定的,所以我怀疑在连接字符串中是否需要它。给它一个破解并报告回来。
答案 1 :(得分:1)
纠正您的连接刺痛:
<connectionStrings>
<add name="ApplicationServices" connectionString="
Data Source=db479427535.db.1and1.com,1433;Initial Catalog=db479427535;
User Id=dbo479427535;Password=**I've used real password!**;"
providerName="System.Data.OleDb" />
<add name="ConnectionString" connectionString="
Data Source=db479427514.db.1and1.com,1433;Initial Catalog=db479427514;
User Id=dbo479427514;Password=**I've used real password!**;"
providerName="System.Data.OleDb" />
</connectionStrings>
这是因为我们在连接字符串中没有提供者对象,所以删除它并在连接字符串的“providerName”部分下指定提供者名称:System.Data.OleDb