底层提供程序无法打开

3

你好,

我正在使用VS2010并且使用Microsoft Entity Framework 4.0进行开发。

我正在开发一个Windows应用程序。我已经在我的应用程序中绑定了几个下拉框,目前运行良好。

void BindNatureOfIndustryCombo()
{
    using (var obj = new EASDBEntitiesCon())
    {
        var natureOfIndustryColl = from c in obj.IndustryTypes select c;
        var natureOfIndustryList = natureOfIndustryColl.ToList();

        cmbNatureOfIndustry.DataSource = natureOfIndustryList;
        cmbNatureOfIndustry.DisplayMember = "IndustryType";
        cmbNatureOfIndustry.ValueMember = "IndustryTypeID";

    }
}

ConnectionString is

<add name="EntrpriseApplicationSuit.Properties.Settings.EASDBConnectionString" connectionString="Data Source=192.168.0.150\GSERVER;Initial Catalog=EASDB;Persist Security Info=True;User ID=sa;Password=$1234;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

但是当我在另一个系统上启动我的应用程序时,它会出现以下错误:

底层提供程序打开失败

为什么会出现这个错误?有什么解决方案吗?

3个回答

6
这表明另一台计算机的连接字符串无效。也许它正在使用Windows身份验证,而其他用户或计算机没有访问权限 - 或者它在不同的网络上,无法连接服务器?如果不知道它尝试连接什么,我们无法确切诊断问题。请提供尽可能多的连接上下文,并说明工作正常的计算机和工作不正常的计算机之间的任何差异。

嗨Jon,我正在使用SQL Server身份验证和用户名密码,一切都正确。当我在其他系统上打开我的应用程序并从数据库更新模型时,它开始正常工作。 - Nagendra Kumar
@Nagendra:恐怕你所说的“在其他系统上打开我的应用程序并从数据库中更新模型”并不是很清楚。 - Jon Skeet

0

你应该仔细检查你的连接字符串!

确保数据库服务器/实例、数据库名称、使用的用户ID和(或)密码都是正确的。


当我在我的系统上运行此程序时,它能够正常工作。但是,当我在其他系统上运行此应用程序时,它会出现错误。我已经仔细检查了ServerName、Id、Password和数据库名称等所有内容,一切都是正确的。 - Nagendra Kumar
@Nagendra:你检查过你的应用程序所在的机器是否能够连接到指定的SQL Server了吗? - Numan

0
分布式事务协调器(DTC)可能已被禁用。请尝试使用组件服务管理工具,在MSDTC的安全配置中启用DTC以进行网络访问。
打开DTC方法如下:转到“组件服务/计算机/我的计算机/分布式事务协调器”,右键单击“本地 DTC”,选择“属性”,点击“安全”选项卡,勾选“启用网络 DTC 访问”和“允许远程客户端”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接