EF MVC项目中NLog初始化字符串格式不符合规范问题求助
问题解决:NLog数据库目标连接字符串格式错误
错误原因明确:NLog的Database目标不支持EntityFramework的实体连接字符串(包含metadata节点的那种),它需要的是原生System.Data.SqlClient类型的纯数据库连接字符串。
具体修改步骤:
替换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>验证连接字符串有效性
确认Nlog连接字符串中的服务器地址、数据库名、账号密码均正确:- 服务器名大小写保持一致(配置中同时出现
NP-DBTRANS01\DEV和np-dbtrans01\dev,统一格式即可) - 确保SQL Server允许该账号登录,且拥有目标数据库的写入权限
- 服务器名大小写保持一致(配置中同时出现
可选:直接写入连接字符串
若不想依赖配置文件中的连接字符串,可直接在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>检查NLog内部日志
你已开启NLog内部日志(internalLogFile="c:\temp\nlog-internal.log"),可打开该文件查看更详细的错误细节,比如权限不足、数据库不存在等问题。确认依赖包安装
确保已安装NLog.DatabaseNuGet包,最新版NLog的数据库目标功能已单独拆分,需单独安装。
内容的提问来源于stack exchange,提问作者DotNetter
相关产品推荐
相关产品推荐

