2015-11-13 17 views
9

Trong một trong những dự án của tôi, tôi nhận được lỗi này:log4net AdoNetAppender - SqlParameterCollection không chứa các thông số

System.IndexOutOfRangeException: SqlParameterCollection does not contain SqlParameter with ParameterName "@log_date". 
в System.Data.SqlClient.SqlParameterCollection.GetParameter(String parameterName) 
в System.Data.Common.DbParameterCollection.System.Data.IDataParameterCollection.get_Item(String parameterName) 
в log4net.Appender.AdoNetAppenderParameter.FormatValue(IDbCommand command, LoggingEvent loggingEvent) 
в log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, LoggingEvent[] events) 
в log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events) 

Đây là appender cấu hình (trong đó hoạt động hoàn hảo trong các dự án khác):

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="1" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="Data Source=*****;Initial Catalog=****;Integrated Security=SSPI" /> 
     <commandText value="INSERT INTO [LogsDB].[dbo].[Logs] ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
     <parameter> 
      <parameterName value="@log_date" /> 
      <dbType value="DateTime" /> 
      <layout type="log4net.Layout.RawTimeStampLayout" /> 
     </parameter> 
     . 
     . 
     . 
     <parameter> 
      <parameterName value="@exception" /> 
      <dbType value="String" /> 
      <size value="2000" /> 
      <layout type="log4net.Layout.ExceptionLayout" /> 
     </parameter> 
    </appender> 

Nếu ai đó gặp vấn đề này, tôi thực sự đánh giá cao việc giúp đỡ

+1

Bạn vừa mới nâng cấp lên 1.2.14 vì có [có vẻ là vấn đề] (https://issues.apache.org/jira/browse/LOG4NET-489) – stuartd

+0

@stuartd Tôi vừa sao chép lại. Tất cả các ứng dụng khác dường như hoạt động. – Ernesto

+0

Thực sự ... trong dự án mới này, tôi có phiên bản mới nhất của log4net –

Trả lời

12

Cài đặt gói Log4net -Phiên bản 2.0.3

Làm việc cho tôi (có cùng một vấn đề)

+2

Hạ cấp xuống [2.0.3] (https://www.nuget.org/packages/log4net/2.0.3) đã giải quyết được sự cố ngay bây giờ. – Win

+0

Làm việc cho tôi. Cảm ơn. – Aleksei

+0

Phân loại nó cho tôi quá ... Cảm ơn –

-1

Giải quyết nó. Đã nâng cấp Log4Net lên 2.04! Sau đó chạy lệnh được cung cấp ở trên! Không biết tôi đang làm gì. Nhưng bây giờ tôi có thể đăng nhập vào cơ sở dữ liệu!

+1

Nếu bạn ngụ ý lệnh 'Install-Package Log4net -Version 2.0.3' thì bạn chỉ cần hạ cấp xuống phiên bản 2.0.3. Bạn có thể đọc về lỗi [ở đây] (https://issues.apache.org/jira/browse/LOG4NET-489). – SebastianC

Các vấn đề liên quan