库设置

时间:2012-05-22 20:08:33

标签: c# asp.net web-config app-config

  1. 我有一个库项目,可以访问app.config
  2. 中配置的数据库
  3. 我有一个访问web.config
  4. 中配置的数据库的Web项目

    两者都正常运作

    现在我想使用Web项目中的库。 在Visual Studio中工作正常。 在生产服务器中,Web项目访问数据库,但库不能从项目Web访问数据库。

    app.config和web.config中的ConnectionString是相同的。 在生产服务器中不应该采用web.config设置吗?

    谢谢,对不起我的英文

    修改

    web.config和app.config connectionStrings

    <connectionStrings> 
        <add name="IntranetConnectionString" 
             connectionString="Data Source=(local)\SQLExpress;Initial Catalog=Intranet;Integrated Security=True;" 
             providerName="System.Data.SqlClient" /> 
        <add name="Database.Properties.Settings.IntranetConnectionString" 
             connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=Intranet;Integrated Security=True" 
             providerName="System.Data.SqlClient" /> 
    </connectionStrings>
    

    错误:

      

    建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

3 个答案:

答案 0 :(得分:0)

如果我理解正确,请尝试复制本地库的引用,为此,right-click项目中的引用,然后在属性中将True设置为Copy Local ,现在您将在服务器本地拥有库。

如果问题与库的引用有关,这应该有效,如果它是web.config/app.config问题则无济于事

答案 1 :(得分:0)

DLL通常采用调用它的主机应用程序的app.config而不是它自己的配置。这里有些肉吗?

答案 2 :(得分:0)

解决方案:

在DLL中创建一个类,使用接收ConnectionString

的构造函数访问DataTable
public TestBLL(String ConnectionString)
{
    TestTableAdapter ta = new TestTableAdapter();
    ta.Connection = new System.Data.SqlClient.SqlConnection(ConnectionString);
}

在Web项目中:

String cs = System.Configuration.ConfigurationManager.ConnectionStrings["IntranetConnectionString"].ToString();
TestBLL taBLL = new TestBLL(cs);

在taBLL中有访问每个查询的方法