Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu bölümde, tanılama istemci kitaplığının API'leri açıklanmaktadır.
public DiagnosticsClient
{
public DiagnosticsClient(int processId);
public EventPipeSession StartEventPipeSession(
IEnumerable<EventPipeProvider> providers,
bool requestRundown = true,
int circularBufferMB = 256);
public Task<EventPipeSession> StartEventPipeSessionAsync(
IEnumerable<EventPipeProvider> providers,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
public void WriteDump(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration = false);
public async Task WriteDumpAsync(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration,
CancellationToken token);
public void AttachProfiler(
TimeSpan attachTimeout,
Guid profilerGuid,
string profilerPath,
byte[] additionalData = null);
public void SetStartupProfiler(
Guid profilerGuid,
string profilerPath);
public void ResumeRuntime();
public void SetEnvironmentVariable(
string name,
string value);
public Dictionary<string, string> GetProcessEnvironment();
public static IEnumerable<int> GetPublishedProcesses();
}
public DiagnosticsClient(int processId);
İşlem kimliğiyle processId
çalışan uyumlu bir .NET işlemi için yeni bir örneği DiagnosticsClient
oluşturur.
processID
: Hedef uygulamanın işlem kimliği.
public EventPipeSession StartEventPipeSession(
IEnumerable<EventPipeProvider> providers,
bool requestRundown = true,
int circularBufferMB = 256);
public Task<EventPipeSession> StartEventPipeSessionAsync(
IEnumerable<EventPipeProvider> providers,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
Verilen sağlayıcıları ve ayarları kullanarak bir EventPipe izleme oturumu başlatır.
providers
IEnumerable
EventPipeProvider
: İzlemeye başlamak için bir /s.requestRundown
bool
: Hedef uygulamanın çalışma zamanındaki rundown sağlayıcısı olaylarının istenip istenmeyeceğini belirten bir.circularBufferMB
int
: Hedef uygulamanın olay toplama çalışma zamanı tarafından kullanılan döngüsel arabelleğin toplam boyutunu belirten.token
(zaman uyumsuz aşırı yükleme için): İptal isteklerini izlemek için belirteç.public EventPipeSession StartEventPipeSession(EventPipeProvider provider, bool requestRundown = true, int circularBufferMB = 256)
public Task<EventPipeSession> StartEventPipeSessionAsync(EventPipeProvider provider, bool requestRundown, int circularBufferMB = 256, CancellationToken token = default)
provider
: İzlemeyi başlatmak için.EventPipeProvider
requestRundown
bool
: Hedef uygulamanın çalışma zamanındaki rundown sağlayıcısı olaylarının istenip istenmeyeceğini belirten bir.circularBufferMB
int
: Hedef uygulamanın olay toplama çalışma zamanı tarafından kullanılan döngüsel arabelleğin toplam boyutunu belirten.token
(zaman uyumsuz aşırı yükleme için): İptal isteklerini izlemek için belirteç.Not
Rundown olayları, iş parçacığı örneklerinin yöntem adlarını çözümleme gibi analiz sonrası için gerekli olabilecek yükleri içerir. Bunu istemediğinizi bilmiyorsanız true olarak ayarlamanızı requestRundown
öneririz. Büyük uygulamalarda bu işlem biraz zaman alabilir.
public void WriteDump(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration=false);
Hedef uygulamanın son hata ayıklaması için döküm isteyin. Döküm türü sabit listesi kullanılarak DumpType
belirtilebilir.
dumpType
: İstenecek döküm türü.dumpPath
: Yazılacak döküm yolu.logDumpGeneration
: olarak true
ayarlanırsa, hedef uygulama döküm oluşturma sırasında tanılama günlüklerini yazar.public void WriteDump(DumpType dumpType, string dumpPath, WriteDumpFlags flags)
Hedef uygulamanın son hata ayıklaması için döküm isteyin. Döküm türü sabit listesi kullanılarak DumpType
belirtilebilir.
dumpType
: İstenecek döküm türü.dumpPath
: Yazılacak döküm yolu.flags
: rapor bayraklarını günlüğe kaydetme ve kilitlenme. 6.0'dan küçük çalışma zamanlarında yalnızca LoggingEnabled desteklenir.public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, bool logDumpGeneration, CancellationToken token)
Hedef uygulamanın son hata ayıklaması için döküm isteyin. Döküm türü sabit listesi kullanılarak DumpType
belirtilebilir.
dumpType
: İstenecek döküm türü.dumpPath
: Yazılacak döküm yolu.logDumpGeneration
: olarak true
ayarlanırsa, hedef uygulama döküm oluşturma sırasında tanılama günlüklerini yazar.token
: İptal isteklerini izlemek için belirteç.public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, WriteDumpFlags flags, CancellationToken token)
Hedef uygulamanın son hata ayıklaması için döküm isteyin. Döküm türü sabit listesi kullanılarak DumpType
belirtilebilir.
dumpType
: İstenecek döküm türü.dumpPath
: Yazılacak döküm yolu.flags
: rapor bayraklarını günlüğe kaydetme ve kilitlenme. 6.0'dan küçük çalışma zamanlarında yalnızca LoggingEnabled desteklenir.token
: İptal isteklerini izlemek için belirteç.public void AttachProfiler(
TimeSpan attachTimeout,
Guid profilerGuid,
string profilerPath,
byte[] additionalData=null);
Hedef uygulamaya ICorProfiler ekleme isteği.
attachTimeout
: Bundan TimeSpan
sonra ekleme durdurulacak.profilerGuid
: Guid
eklenecek ICorProfiler için.profilerPath
: Eklenecek ICorProfiler dll'sinin yolu.additionalData
: Profil oluşturucu ekleme sırasında çalışma zamanına geçirilebilen isteğe bağlı ek veriler.public void SetStartupProfiler(
Guid profilerGuid,
string profilerPath);
Başlangıç profili oluşturucu olarak bir profil oluşturucu ayarlayın. Çalışma zamanı başlangıçta duraklatılırken bu komutu vermek yalnızca geçerlidir.
profilerGuid
: Guid
profil oluşturucunun eklenmesi için.profilerPath
: Eklenecek profil oluşturucunun yolu.public void ResumeRuntime();
Çalışma zamanına başlangıçta duraklatıldıktan sonra yürütmeyi sürdürmesini söyleyin.
public void SetEnvironmentVariable(
string name,
string value);
Hedef işlemde bir ortam değişkeni ayarlayın.
name
: Ayarlanacağı ortam değişkeninin adı.value
: Ayarlanacağı ortam değişkeninin değeri.public Dictionary<string, string> GetProcessEnvironment()
Hedef işlemden tüm ortam değişkenlerini ve değerlerini alır.
public static IEnumerable<int> GetPublishedProcesses();
IEnumerable
Eklenebilen tüm etkin .NET işlemlerinin işlem kimliklerini alın.
public class EventPipeProvider
{
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords = 0,
IDictionary<string, string> arguments = null)
public string Name { get; }
public EventLevel EventLevel { get; }
public long Keywords { get; }
public IDictionary<string, string> Arguments { get; }
public override string ToString();
public override bool Equals(object obj);
public override int GetHashCode();
public static bool operator ==(Provider left, Provider right);
public static bool operator !=(Provider left, Provider right);
}
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords = 0,
IDictionary<string, string> arguments = null)
Belirtilen sağlayıcı adı, EventLevel, anahtar sözcükler ve bağımsız değişkenlerle yeni bir örneği EventPipeProvider
oluşturur.
public string Name { get; }
Sağlayıcının adını alır.
public EventLevel EventLevel { get; }
EventLevel
Verilen örneğini EventPipeProvider
alır.
public long Keywords { get; }
anahtar sözcükleri EventSource
için bit maskesini temsil eden bir değer alır.
public IDictionary<string, string> Arguments { get; }
Verilen öğesini temsil etmek için geçirilecek EventSource
isteğe bağlı bağımsız değişkenleri temsil eden anahtar-değer çifti dizelerinden birini IDictionary
EventPipeProvider
alır.
EventPipe, .NET Core 3.1 itibarıyla bir EventPipe oturumu sırasında sağlayıcı yapılandırmasının değiştirilmesine izin vermediğinden bu sınıf sabittir.
public class EventPipeSession : IDisposable
{
public Stream EventStream { get; }
public void Stop();
}
Bu sınıf, devam eden bir EventPipe oturumlarını temsil eder. Sabittir ve verilen çalışma zamanının EventPipe oturumu için tanıtıcı işlevi görür.
public Stream EventStream { get; }
Olay akışını okumak için kullanılabilecek bir Stream
alır.
public void Stop();
Verilen EventPipe
oturumu durdurur.
public enum DumpType
{
Normal = 1,
WithHeap = 2,
Triage = 3,
Full = 4
}
İstenebilecek döküm türünü temsil eder.
Normal
: Yalnızca bir işlemdeki tüm mevcut iş parçacıkları için mevcut tüm izlemeler için yığın izlemelerini yakalamak için gerekli bilgileri ekleyin. Sınırlı GC yığını belleği ve bilgileri.WithHeap
: Bir işlemdeki tüm mevcut iş parçacıkları için yığın izlemelerini yakalamak için gereken GC yığınlarını ve bilgileri içerir.Triage
: Yalnızca bir işlemdeki tüm mevcut iş parçacıkları için mevcut tüm izlemeler için yığın izlemelerini yakalamak için gerekli bilgileri ekleyin. Sınırlı GC yığını belleği ve bilgileri. Tam modül yolları gibi hassas olabilecek bilgiler içerdiği bilinen bazı içerikler yeniden dağıtılır. Bu, bazı hassas verilerin açığa çıkarılma durumlarını azaltmaya yönelik olsa da, bu yeniden değiştirme özelliğinin veri gizliliğiyle ilgili herhangi bir yasaya veya standarda uymak için yeterli olduğunu garanti etmemektedir.Full
: Tüm erişilebilir belleği sürece dahil edin. Ham bellek verileri sonuna eklenir, böylece ilk yapılar ham bellek bilgileri olmadan doğrudan eşlenebilir. Bu seçenek çok büyük bir döküm dosyasına neden olabilir.Kitaplıktan atılan özel durumlar tür DiagnosticsClientException
veya türetilmiş türdedir.
public class DiagnosticsClientException : Exception
public class UnsupportedCommandException : DiagnosticsClientException
Bu, komut kitaplık veya hedef işlemin çalışma zamanı tarafından desteklenmediğinde oluşturulabilir.
public class UnsupportedProtocolException : DiagnosticsClientException
Hedef işlemin çalışma zamanı kitaplık tarafından kullanılan tanılama IPC protokolüyle uyumlu olmadığında bu durum oluşabilir.
public class ServerNotAvailableException : DiagnosticsClientException
Bu, çalışma zamanı tanılama komutları için hazır olmadan önce çalışma zamanı başlatma sırasında erken veya çalışma zamanı kapatılıyor gibi tanılama IPC komutları için kullanılabilir olmadığında oluşabilir.
public class ServerErrorException : DiagnosticsClientException
Bu, çalışma zamanı belirli bir komuta bir hatayla yanıt verdiği zaman oluşabilir.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolun