Estoy teniendo un pequeño problema al utilizar un procedimiento almacenado en lugar de una instrucción SQL INSERT al usar NLog en una aplicación web C#. La cadena de conexión "Logger" está configurada correctamente en Web.config y funciona correctamente al reemplazar el comandoText con una instrucción SQL. Agradecería una pista en la dirección correcta. En este ejemplo, el procedimiento almacenado se encuentra bajo el esquema "Logs" y se llama "LogError".Uso del procedimiento almacenado en NLog en un destino de base de datos
<targets>
<target xsi:type="Database"
name="dberrorlog"
connectionStringName="Logger"
keepConnection="true"
commandText="[Logs].[LogError]" >
<parameter name="@ProgName" layout="MyAppName"/>
<parameter name="@CompName" layout="${machinename}"/>
<parameter name="@LogLevel" layout="${level}"/>
<parameter name="@UserName" layout="${identity}"/>
<parameter name="@Error" layout="${exception:format=Message}"/>
<parameter name="@SourceObj" layout="${exception:format=Method}"/>
<parameter name="@StackTrace" layout="${exception:format=StackTrace}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Error" writeTo="dberrorlog" />
</rules>
Gracias, eso funcionó. No se me ocurrió que podía llamar al ejecutivo. Internamente llama a sp_executesql – Diego
@adrift El enlace a la publicación del foro NLog ahora es redundante. – chridam