生产服务器上的web.config connectionStrings

时间:2013-07-15 10:48:22

标签: asp.net web-config

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

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

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

2 个答案:

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