2016-04-08 17 views
2

BelgeDB ile Azure'da bir koleksiyona sahip bir veritabanı kurdum. Tüm CRUD şeylerini veritabanına bağlayabilir, sorgulayabilir, güncelleyebilirim. Şimdi seriLog ekliyorum, böylece hataları yeni veritabanına kaydedebiliyorum. SeriLog, Azure DocumentDb için bir havuza sahiptir. Sen Nuget aracılığıyla yükleyebilirsiniz:SeriLog ile Azure documentDb'ye Yazma

 Install-Package Serilog.Sinks.AzureDocumentDb 

Bunu yaptıktan sonra ben seriLog aracılığıyla benim veritabanına şeyler yazmak için bir test olarak aşağıdakileri yapın:

   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); 

ben bu projeyi derlemek çalıştığımda, izleyici kitlesi elde:

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'  

ben app.config baktı ve şu gördüğümüz:

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

Normalde bu olduğunda, referansı güncellerim ve gideceğim kadar iyiyim. Ama durum böyle değil. VS2015'te boş bir konsol uygulaması ile başladım, NuGet paketini kurdum, kodu ekledim ve çalıştırmayı denedim. Bunun neden olduğunu ve nasıl düzeltileceğini bilen var mı? Teşekkürler

cevap

1

Bu, paketin NuSpec'inde bir sorun oldu; Şimdi yayınlanmış olan Serilog.Sinks.DocumentDB sürüm 1.5.8'de giderilmiştir. Paket Yöneticisi Konsolundan (VS) olarak

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

bir yolunu bulur.

+0

Teşekkürler Nicholas ... Sana bu konuda tweet attım ve sen de cevap verdin. İşe yarıyor! – BoundForGlory

0

Serilog.Sinks.AzureDocumentDb paketlerinin yanı sıra Serilog.Space.AzureDocumentDb paketlerini de eklemeyi denediniz mi?