You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF MVC项目中NLog初始化字符串格式不符合规范问题求助

问题解决:NLog数据库目标连接字符串格式错误

错误原因明确:NLog的Database目标不支持EntityFramework的实体连接字符串(包含metadata节点的那种),它需要的是原生System.Data.SqlClient类型的纯数据库连接字符串。

具体修改步骤:

  1. 替换NLog配置中的连接字符串引用
    把NLog目标里的connectionStringName从MainWebsiteEntities改成配置中纯SqlClient类型的Nlog:

    <target xsi:type="Database" name="dbTarget"
            connectionStringName="Nlog"
            commandText="INSERT INTO dbo.NLog([TimeStamp], [Level], [Message], [Exception], [User])            
                        VALUES (@timeStamp, @level, @message,  @exception, @user);">
      <!-- 参数配置保持不变 -->
    </target>
    
  2. 验证连接字符串有效性
    确认Nlog连接字符串中的服务器地址、数据库名、账号密码均正确:

    • 服务器名大小写保持一致(配置中同时出现NP-DBTRANS01\DEV和np-dbtrans01\dev,统一格式即可)
    • 确保SQL Server允许该账号登录,且拥有目标数据库的写入权限
  3. 可选:直接写入连接字符串
    若不想依赖配置文件中的连接字符串,可直接在NLog目标里指定connectionString属性:

    <target xsi:type="Database" name="dbTarget"
            connectionString="Data Source=NP-DBTRANS01\DEV;Initial Catalog=MainWebsite;Persist Security Info=True;user id=USERID;password=PASSWORD"
            commandText="INSERT INTO dbo.NLog([TimeStamp], [Level], [Message], [Exception], [User])            
                        VALUES (@timeStamp, @level, @message,  @exception, @user);">
    </target>
    
  4. 检查NLog内部日志
    你已开启NLog内部日志(internalLogFile="c:\temp\nlog-internal.log"),可打开该文件查看更详细的错误细节,比如权限不足、数据库不存在等问题。

  5. 确认依赖包安装
    确保已安装NLog.Database NuGet包,最新版NLog的数据库目标功能已单独拆分,需单独安装。

内容的提问来源于stack exchange,提问作者DotNetter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:33:24