2

问题:我正在尝试在 MVC 应用程序中使用 JSNLog(目标框架:.NET 4.5)。我收到“当前上下文中不存在 JSN 日志”错误。

我尝试安装JSNLog 2.28.0,但它显示:

无法安装包“JSNLog 2.28.0”。您正在尝试将此包安装到以“.NETFramework,Version=v4.5”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。

所以,我已经安装了以下这些用于日志记录的包:

  1. JSN 日志 v-2.27.1
  2. JSNLog.Log4Net v-2.27.1
  3. log4Net v-2.0.8

我之前在 .NET Framework 4.6.1 上做过同样的事情,当时它很容易工作。有什么我想念的吗?

我的步骤是:

  1. 从 VS 2017 创建了一个 MVC 应用程序。
  2. 安装了 log4net 并添加了服务器端日志记录。(这工作正常)
  3. 下载 JSNLog & JSNLog.Log4Net
  4. JSNLog 配置会自动添加到 Web.Config 中。
  5. 在视图中添加了@Html.Raw(JSNLog.JavascriptLogging.Configure())。(这仅适用于 .NET 4.6.1)。
  6. 为 JSN 日志添加了我自己的脚本。

我的示例代码如下:

我在 Index.cshtml 页面上收到以下错误:

index_cshtml

这是我在 Web.Config 中的 JSNLog 配置:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <section name="jsnlog" type="JSNLog.ConfigurationSectionHandler, JSNLog" requirePermission="false" /><sectionGroup name="common">
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>

  <log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <!-- prevent log4net from locking the file, otherwise integration tests cannot remove it for each test-->
      <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
      <file value="Logs\log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%utcdate | %level | %logger | %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="TRACE" />
      <appender-ref ref="RollingFile" />
    </root>
  </log4net>
    <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <httpHandlers>
        <add verb="*" path="*.logger" type="JSNLog.LoggerHandler, JSNLog" />
    </httpHandlers>
    </system.web>

<jsnlog productionLibraryPath="~/Scripts/jsnlog.min.js">
    </jsnlog><common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" />
    </logging>
  </common>

我尝试使用 .NET 4.6.1 项目中的 jsnlog dll。

以前的错误在这里消失了,但现在给出了这个错误:POST http://localhost:xxxxx/jsnlog.logger 500 (Internal Server Error)

截屏: 浏览器控制台错误

4

0 回答 0