2016-04-08 2 views
2

У меня есть база данных с коллекцией в Azure с DocumentDB. Я могу подключиться, запросить, обновить всю вещь CRUD с помощью базы данных. Теперь я добавляю seriLog, чтобы я мог регистрировать ошибки в моей новой базе данных. У SeriLog есть раковина для Azure DocumentDb. Вы можете установить его с помощью NuGet:Напишите Azure documentDb с SeriLog

 Install-Package Serilog.Sinks.AzureDocumentDb 

После этого, я следующий в качестве теста, чтобы написать что-то в моей базе данных с помощью seriLog:

   Uri uri = new Uri(ConfigurationManager.AppSettings["endpoint"]); 
     DateTimeOffset timestamp = new DateTimeOffset(DateTime.Now); 
     Exception exception = new Exception("This is just a test"); 
     IEnumerable<MessageTemplateToken> tokens = new List<MessageTemplateToken>(); 
     MessageTemplate messageTemplate = new MessageTemplate(tokens); 
     IEnumerable<LogEventProperty> properties = new List<LogEventProperty>(); 
     LogEvent logEvent = new LogEvent(timestamp, LogEventLevel.Information,exception,messageTemplate,properties); 
     var azure = new AzureDocumentDBSink(uri, ConfigurationManager.AppSettings["authKey"], ConfigurationManager.AppSettings["database"], "Items",null); 
     azure.Emit(logEvent); 

Когда я пытаюсь скомпилировать этот проект, я получим следующее:

Error CS1705 Assembly 'Serilog.Sinks.AzureDocumentDB' with identity 
    'Serilog.Sinks.AzureDocumentDB, Version=1.5.0.0, 
    Culture=neutral, PublicKeyToken=24c2f752a8e58a10' uses 'Serilog, 
    Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10' 
    which has a higher version than referenced assembly 
    'Serilog' with identity 'Serilog, Version=1.4.0.0, Culture=neutral, 
    PublicKeyToken=24c2f752a8e58a10'  

Я посмотрел в app.config и увидел следующее:

 <dependentAssembly> 
    <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.4.0.0" newVersion="1.4.0.0" /> 
    </dependentAssembly> 

Обычно, когда это происходит, я просто обновляю ссылку, и мне хорошо идти. Но это не так. Я начал с чистого консольного приложения в VS2015, установил пакет NuGet, добавил код и попытался запустить его. Кто-нибудь знает, почему это происходит и как это исправить? Спасибо

ответ

1

Это была проблема с NuSpec пакета; он исправлен в Serilog.Sinks.DocumentDB версия 1.5.8, которая теперь опубликована.

Update-Package Serilog 
Update-Package Serilog.Sinks.AzureDocumentDB 

В Package Manager Console (VS) будет разобраться.

+0

Спасибо, Николас. Я написал твиттер вас об этом, и вы тоже ответили там. Работает! – BoundForGlory

0

Вы пробовали удалить Serilog, а также пакеты Serilog.Sinks.AzureDocumentDb, а затем добавить Serilog.Sinks.AzureDocumentDb обратно?

Смежные вопросы