我同事写了个aa.exe程序,程序生成了个aa.exe.config的文件。单独运行该exe是没有问题。我在其他的项目里引用了他的,每次掉用的时候就报如下错误。
“在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)”配置文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="aa.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <connectionStrings>
        <add name="aa.My.MySettings.mrexsiteConnectionString" connectionString="Data Source=127.0.0.1;Initial Catalog=lzm;User ID=sa;pwd=sa"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.diagnostics>
        <sources>
            <!-- 本部分定义 My.Application.Log 的登录配置-->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- 取消以下部分的注释,以写入应用程序事件日志-->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
            <!--<add name="FileLog"
                 type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
                 initializeData="FileLogWriter"/> -->
            <!-- 取消以下部分的注释,并用应用程序名替换 APPLICATION_NAME,以写入应用程序事件日志-->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
    <!--<userSettings>
        <aa.My.MySettings>
            <setting name="config" serializeAs="String">
                <value>Xml</value>
            </setting>
            <setting name="lzm" serializeAs="String">
                <value />
            </setting>
        </aa.My.MySettings>
    </userSettings>-->
</configuration>请问是那里的问题?!!谢谢

解决方案 »

  1.   

    他是在ODBC里建DSN来做数据源链接的。我也建了相同的。可是就是不行。
      

  2.   

    你先确实sql server是否开启了允许远程连接,然后你在ODBC中测试一下DSN是否成功
      

  3.   

    我上次遇到这个error,是因为不知道哪个孙子把我的MSSQLSERVER service给停了
      

  4.   

    首先我可以确认不是数据库链接的问题因为单独运行那个exe是可以的,只是我引用之后才报的那样的错误的
      

  5.   

    在你的sqlconnection.open()之前,把连接串输出来看下,是否和app.config中一样
    ------------------
        <connectionStrings>
            <add name="aa.My.MySettings.mrexsiteConnectionString" connectionString="Data Source=127.0.0.1;Initial Catalog=lzm;User ID=sa;pwd=sa"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
      

  6.   

    yan63(silence like a cancer grows)
       那个EXE没有代码了,只有程序了。程序是可以运行的,不会报数据链接错误。问题是在新项目里引用时出的问题。
      

  7.   

    把aa.exe.config和aa.exe一起放到bin目录再调用试试看
    可能是aa.exe读取的是你项目的config文件