-3

我正在尝试部署我的第一个包含数据库的网站。测试本地版本有以下连接字符串

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

我收到以下错误

不支持关键字:“提供者”。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentException:不支持关键字:“提供者”。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

[ArgumentException:不支持关键字:'provider'。]

[ArgumentException:尝试初始化 System.Data.SqlClient.SqlConnection 对象时发生错误。为连接字符串提供的值可能是错误的,或者它可能包含无效的语法。
参数名称:connectionString]

谁能告诉我这里有什么问题?

4

2 回答 2

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=) 中指定的,所以我怀疑连接字符串中是否需要它。给它一个裂缝并报告回来。

于 2013-07-15T10:53:40.900 回答
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

于 2013-07-15T10:56:58.223 回答