在数据库目标上使用NLog中的存储过程

在C#Web应用程序中使用NLog时,使用存储过程而不是SQL INSERT语句时遇到了一些问题。 连接字符串“Logger”在Web.config中正确配置,并在用SQL语句替换commandText时正常工作。 我希望得到正确方向的暗示。 在此示例中,存储过程位于“Logs”模式下,称为“LogError”。

              

从这个NLog 论坛post ,尝试使用该文本来执行存储过程:

 commandtext="exec AddActivityLog @ApplicationName, @ApplicationTime, @Severity, @Logger, @SaxoID, @EventID, @Message, @URL, @URLReferrer, @RemoteAddress, @Callsite, @CurrentUICulture, @ThreadIdentity, @WindowsIdentity, @MachineName, @ProcessID, @ThreadID, @ThreadName, @Stacktrace, @Exception, @Cookie, @FormVariables, @QueryString, @HTTPUserAgent" 

旁注:Claus Rathje的答案不会在我的浏览器中呈现,因此我必须查看页面源以查看他发布的配置。

请注意,虽然@ JeffOgata的解决方案有效,但可能不是您想要解决问题的方式。

你可以这样做:

 commandText="AddActivityLog" commandType="StoredProcedure" 

这样您就不必担心正确格式化EXEC查询。