首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLog 4.0无法连接到SQL Server命名实例以记录到数据库表

NLog 4.0无法连接到SQL Server命名实例以记录到数据库表
EN

Stack Overflow用户
提问于 2015-08-26 19:51:20
回答 1查看 664关注 0票数 1

我正在使用NLog将错误从Winform .NET应用程序记录到文件和数据库表中。数据库表托管在SQL Server 2014上。

NLog配置文件如下所示。日志成功写入文件。

如果将SQL Server安装为默认实例,我可以使用完全相同的配置文件成功地登录到数据库表。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="Nlog.log">
  <targets>
    <target name="file" xsi:type="File" layout="${longdate}|${level}|${callsite}|${logger}|${threadid}|${windows-identity:domain=false}--${message} ${exception:format=message,stacktrace:separator=*" fileName="My.Application.log" />
    <target name="database" type="Database">
      <connectionString>Data Source=ABC\DEV01;Initial Catalog=my_database;User Id=user01;Password=Password01;Application Name=My Application;Failover Partner=XYZ\DEV01</connectionString>
      <commandText>
        INSERT INTO tb_system_logging(log_date,log_level,log_logger,log_message,log_machine_name, log_user_name, log_call_site, log_thread, log_exception, log_stacktrace) VALUES(@time_stamp, @level, @logger, @message, @machinename, @user_name, @call_site, @threadid,
        @log_exception, @stacktrace);
      </commandText>
      <parameter name="@time_stamp" layout="${longdate}" />
      <parameter name="@level" layout="${level}" />
      <parameter name="@logger" layout="${logger}" />
      <parameter name="@message" layout="${message}" />
      <parameter name="@machinename" layout="${machinename}" />
      <parameter name="@user_name" layout="${windows-identity:domain=true}" />
      <parameter name="@call_site" layout="${callsite:filename=true}" />
      <parameter name="@threadid" layout="${threadid}" />
      <parameter name="@log_exception" layout="${exception}" />
      <parameter name="@stacktrace" layout="${stacktrace}" />
    </target>
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="file" />
    <logger name="*" minlevel="Info" appendTo="database" />
  </rules>
</nlog>

当我在同时承载SQL server实例的开发服务器上运行应用程序时,我看到以下错误记录到内部日志文件NLog.Log中。

代码语言:javascript
复制
2015-08-25 23:41:27.0999 Error Error when writing to database System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) ---> System.ComponentModel.Win32Exception (0x80004005): The network path was not found
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

我已检查SQL server是否允许远程连接,以及服务器上是否启用了TCP/IP和命名管道协议。

非常感谢您的帮助。

问候

詹姆斯

EN

回答 1

Stack Overflow用户

发布于 2015-08-27 05:51:09

这似乎是你的连接字符串的一个问题。也许这会有帮助:how to solve the system.data.sqlclient.sqlexception (0x80131904) error

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32225891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档