两者都正常运作
现在我想使用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 - 查找指定的服务器/实例时出错)
答案 0 :(得分:0)
如果我理解正确,请尝试复制本地库的引用,为此,right-click
项目中的引用,然后在属性中将True
设置为Copy Local
,现在您将在服务器本地拥有库。
如果问题与库的引用有关,这应该有效,如果它是web.config/app.config
问题则无济于事
答案 1 :(得分:0)
DLL通常采用调用它的主机应用程序的app.config而不是它自己的配置。这里有些肉吗?
答案 2 :(得分:0)
解决方案:
在DLL中创建一个类,使用接收ConnectionString
的构造函数访问DataTablepublic 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中有访问每个查询的方法