TelemetrySession Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Telemetri olaylarını ve oturum özelliklerini gönderebilen bir telemetri oturumlarını temsil eder. API, telemetri verilerini sunucuya teslim etmek için en iyi çabayı gösterir. İstekler kuyruğa alınıp toplu olarak gönderilir. İşlemden çıkmadan önce gönderilemeyen olaylar yerel olarak kaydedilir. Sonraki uygulama örneği telemetri API'sini çağırdığında gönderme işlemi devam eder. İşlem yanıt vermemeye başlaması veya önemli kilitlenme veya 30 gün boyunca İnternet bağlantısı olmaması durumunda telemetri kaybolabilir. Tüm yöntemler iş parçacığı açısından güvenlidir ve hemen döndürülmektedir.
public ref class TelemetrySession : Microsoft::VisualStudio::Telemetry::TelemetryDisposableObject
public class TelemetrySession : Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject
type TelemetrySession = class
inherit TelemetryDisposableObject
Public Class TelemetrySession
Inherits TelemetryDisposableObject
- Devralma
Oluşturucular
| TelemetrySession(String) |
TelemetrySessionSettings örneğinin serileştirilmiş dizesini temel alan yeni bir telemetri oturumu oluşturur. Böyle bir dizeyi almak için TelemetrySession örneğinin SerializeSettings yöntemini kullanın. Bu, bir işlemin başka bir işlemden bir telemetri oturumuna olay göndermesini sağlar. Uygulama oturumuna erişmek için VSTelemetryService.DefaultSession kullanın. |
Alanlar
| DefaultContextName |
Varsayılan bağlam adı. |
| ValueNotAvailable |
Kullanılamayan değer için sabit. |
Özellikler
| AppId |
SQM için uygulama kimliğini alır veya ayarlar |
| BucketFiltersToAddDumpsToFaults |
Hata olayları için hangi demet işlem dökümlerinin eklenmesi gerektiğini belirten bir değer alır veya ayarlar. |
| BucketFiltersToEnableWatsonForFaults |
Watson raporlamanın hata olayları için hangi demetler için etkinleştirilmesi gerektiğini belirten bir değer alır veya ayarlar. |
| CalculatedSamplings |
Bildirim dosyasından hesaplanan örneklemeyi alır/ayarlar |
| CancellationToken |
Telemetri Oturumunun CancellationToken'ini alır |
| CanCollectPrivateInformation |
Geçerli oturumun Kullanıcı Bilgileri Yöneticisi'nden gelen yanıta göre PII bilgilerini toplayıp toplayamayacağını belirten bir değer alır |
| GlobalStorageUri |
VS Code'dan genel depolama URI'sini alır |
| HostName |
Telemetri ana bilgisayar adını alır veya ayarlar, bildirim dosyası konumunu etkiler |
| IsDisposed |
Gereksiz çağrıları algılamak için oturumun depolanıp depolanmadığını belirten bir değer alır (Devralındığı yer: TelemetryDisposableObject) |
| IsOptedIn |
Kullanıcının kabul edilip edilmediğini belirten bir değer alır veya ayarlar. |
| IsUserMicrosoftInternal |
Geçerli oturumun iç kullanıcıya ait olup olmadığını belirten bir değer alır, bu nedenle Kullanıcı Bilgileri Yöneticisi'nden gelen yanıta göre bilgi toplayabilir |
| MacAddressHash |
MAC adresi karması alır. Karma yerel depolamada bulunmazsa 0 karma döndürülür ve karma oluşturma işlemi çağrılır |
| MachineId |
Makine kimliğini (SQM Makine Kimliği) alır |
| SessionId |
Oturum kimliğini alır. |
| TimeSinceSessionStart |
Müşterilerin telemetri verilerinin kullandığı algoritmayı temel alarak özel gecikmeleri hesaplamak için kullanmak istemesi durumunda TimeSinceSessionStart değerini alır. |
| UserId |
Kullanıcı kimliğini (SQM Kullanıcı Kimliği) alır |
Yöntemler
| AddCommonPropertyRange(IDictionary<String,Object>) |
Oturum için tüm olaylar için ortak olabilecek ancak Default.Context ön ekine sahip olmaması gereken özellikler ekleyin. Özellikler oturumlar arasında kalıcı olmaz. Tek bir özellik eklemek için bkz. TryAddCommonProperty(String, Object) |
| AddSessionChannel(ISessionChannel) |
Etkin kanallar listesine yeni oturum kanalı ekleyin. |
| CreateContext(String) |
Bağlamı belirli bir adla İçerik Oluşturucu. |
| Dispose() |
Bu kod, atılabilir deseni doğru şekilde uygulamak için eklendi. (Devralındığı yer: TelemetryDisposableObject) |
| DisposeManagedResources() |
Dispose düzeninin korumalı uygulaması. |
| DisposeToNetworkAsync(CancellationToken) |
Zaman uyumsuz olarak atıp tüm telemetri verilerini ağ üzerinden göndermeye çalışın. |
| GetCommonPropertyDictionary() |
Şu anda oturumda olan CommonProperty anahtarlarının ve değerlerinin bir kopyasını içeren bir IDictionary alır. |
| GetContext(String) |
Verilen ada göre bir bağlam alır. |
| GetPersistedSharedProperty(String) |
Ada göre kalıcı paylaşılan özelliği alın. |
| GetPropertyBag(String) |
Verilen ada göre bir özellik paketi alır. |
| GetSharedProperty(String) |
Paylaşılan özelliği ada göre alın. |
| GetSharedPropertyAsObject(String) |
Paylaşılan özelliğin değerini nesne olarak ada göre alın. |
| PostEvent(String) |
Telemetri olayını bir sunucuya gönderilmek üzere kuyruğa alır. Tek olay özelliği adsa kolaylık olması için bu yöntemi seçin. PostUserTask, PostOperation, PostFault veya PostAsset'i seçmeniz gerekir. Bunlar, Visual Studio Veri Modeli tarafından sağlanan ek içgörülerle daha zengin bir telemetri deneyimi sağlar. Veri noktanız herhangi bir VS Veri Modeli varlığıyla uyumlu değilse lütfen ilişkilendirmeye zorlamayın ve bu yöntemi kullanmaya devam edin. VS Veri Modeli ile ilgili sorularınız varsa lütfen VS Veri Modeli Ekibine (vsdmcrew@microsoft.com e-posta gönderin). |
| PostEvent(TelemetryEvent) |
Telemetri olayını bir sunucuya gönderilmek üzere kuyruğa alır. Esneklik için bu yöntemi seçin. PostUserTask, PostOperation, PostFault veya PostAsset'i seçmeniz gerekir. Bunlar, Visual Studio Veri Modeli tarafından sağlanan ek içgörülerle daha zengin bir telemetri deneyimi sağlar. Veri noktanız herhangi bir VS Veri Modeli varlığıyla uyumlu değilse lütfen ilişkilendirmeye zorlamayın ve bu yöntemi kullanmaya devam edin. VS Veri Modeli ile ilgili sorularınız varsa lütfen VS Veri Modeli Ekibine (vsdmcrew@microsoft.com e-posta gönderin). |
| PostMetricEvent(TelemetryMetricEvent) |
Ölçüm özelliklerini doldurarak ölçüm olayını hazırlar ve ardından olayı yayınlar. |
| PostProperty(String, Object) |
Oturum genelindeki bir özellik için güncelleştirmeyi kuyruğa alır. Göz önünde bulundurmak TelemetrySettingProperty isteyebilirsiniz veya TelemetryMetricProperty Bunlar, Visual Studio Veri Modeli tarafından sağlanan ek içgörülerle daha zengin bir telemetri deneyimi sağlar. VS Veri Modeli ile ilgili sorularınız varsa lütfen VS Veri Modeli Ekibine (vsdmcrew@microsoft.com e-posta gönderin). |
| PostRecurringProperty(String, Object) |
Düzenli olarak yinelenen VS/TelemetryApi/RecurringProperties olayına eklenecek bir özellik ekler. PostProperty veya TelemetryContext.PostProperty'den farklı olarak, PostRecurringProperty verilen özelliği her olaya eklemez. PostRecurringProperty, bir TelemetrySession'ın ömrü boyunca sabit olan değerler için en kullanışlıdır. |
| RegisterForReliabilityEvent() |
Bu işlemin son kapatma durumunu izlemek ve raporlamak için herhangi bir konak VS IDE tarafından kullanılan kayıt defterine işlem ve oturum bilgilerini yazar. |
| RegisterPropertyBag(String, TelemetryPropertyBag) |
Verilen özellik çantasını kaydedin. |
| RemovePersistedSharedProperty(String) |
Tüm oturumlar için kalıcı paylaşılan özelliği kaldırma, paylaşılan özelliği bu varsayılan bağlamdan ve makinedeki gelecekteki tüm oturumlar için kaldırma anlamına gelir. |
| RemoveSharedProperty(String) |
Oturum için paylaşılan özelliği kaldırma, paylaşılan özelliği varsayılan bağlamdan kaldırma anlamına gelir |
| RequiresNotDisposed() |
Nesne atılırsa bu işlev bir ObjectDisposedException oluşturur. (Devralındığı yer: TelemetryDisposableObject) |
| SerializeSettings() |
TelemetrySessionSettings nesnesini serileştirir. |
| SetPersistedSharedProperty(String, Double) |
Oturum için kalıcı paylaşılan özelliği ayarlama, bu oturumun varsayılan bağlamı ve makinedeki gelecekteki oturumlar için paylaşılan özelliği ayarlama anlamına gelir. |
| SetPersistedSharedProperty(String, String) |
Oturum için kalıcı paylaşılan özelliği ayarlama, bu oturumun varsayılan bağlamı ve makinedeki gelecekteki oturumlar için paylaşılan özelliği ayarlama anlamına gelir. |
| SetSharedProperty(String, Object) |
Oturum için paylaşılan özelliği ayarlama, varsayılan bağlam için paylaşılan özelliği ayarlamaYın TelemetrySettingProperty isteyebilirsiniz veya TelemetryMetricProperty Bunlar, Visual Studio Veri Modeli tarafından sağlanan ek içgörülerle daha zengin bir telemetri deneyimi sağlar. VS Veri Modeli ile ilgili sorularınız varsa lütfen VS Veri Modeli Ekibine (vsdmcrew@microsoft.com e-posta gönderin). |
| Start() |
Oturumu başlatma, oturum için varsayılan bağlam oluşturma ve izin veriliyorsa özel bilgi özellikleri ekleme anlamına gelir. |
| ToString() |
Hata ayıklamayı kolaylaştırmak için ToString: hata ayıklama watch penceresinde göster |
| TryAddCommonProperty(String, Object) |
Oturum için tüm olaylar için ortak olabilecek ancak Bağlam ön ekine sahip olmaması gereken tek bir özellik anahtarı ve değeri eklemeye çalışır. Özellikler oturumlar arasında kalıcı olmaz. Birden çok özellik eklemek için bkz. AddCommonPropertyRange(IDictionary<String,Object>) |
| TryGetCommonPropertyValue(String, Object) |
Oturum için tüm olaylar için ortak olacak ancak bağlam veya ayrılmış ön eke sahip olmaması gereken belirtilen özellik adıyla ilişkili değeri alır. |
| UnregisterPropertyBag(String) |
Verilen ada sahip bir özellik çantasının kaydını silin. |
| UseVsIsOptedIn() |
VS OptIn durumunu okur ve ayarlar. VS'nin tüm yüklü sürümlerindeki OptedIn durumuna göre IsOptedIn durumunu hesaplayın. Bulunan tüm OptedIn durumları doğruysa true değerini döndürür, aksi takdirde false değerini döndürüriz. |
| UseVsIsOptedIn(String) |
VS OptIn durumunu okur ve ayarlar. |
Uzantı Metotları
| PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
ile |
| PostCorrelatedFaultEvent(TelemetrySession, TelemetryScope<OperationEvent>, String, String, Exception, Func<IFaultUtility,Int32>) |
ile |
| PostCommandLineFlags(TelemetrySession, IEnumerable<String>, IDictionary<String,Object>) |
Bir telemetri olayını komut satırıyla kuyruğa alır ve bilgileri sunucuya postalanacak ek özelliklerle bayraklar. Yalnızca komut satırı bayrakları (belirtilen ön eklerle tanımlanır) eklenir. |
| PostCommandLineFlags(TelemetrySession, String[]) |
Bir telemetri olayını, sunucuya gönderilmek üzere komut satırı bayraklarıyla kuyruğa alır. Yalnızca komut satırı bayrakları (belirtilen ön eklerle tanımlanır) eklenir. |
| PostAsset(TelemetrySession, String, String, Int32, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Bir Varlık olayı gönderin. Varlık; çözüm, proje, dosya, uzantı, lisans, Designer gibi kullanıcı görevinin veya işleminin hedefidir. |
| PostFault(TelemetrySession, String, String) |
Bir Hata olayı gönderin. Olay her zaman AppInsights'a gönderilir, ancak örneklemeyi geçerse Wason'a da gönderilir. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, FaultSeverity) |
Bir Hata olayı gönderin. Olay her zaman AppInsights'a gönderilir, ancak örneklemeyi geçerse Wason'a da gönderilir. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, FaultSeverity, Exception) |
Yönetilen Bir Özel Durum nesnesiyle Hata Olayı gönderme. Demet parametreleri özel durum nesnesinden oluşturulur. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>) |
Özel durum nesnesi ve geri çağırma içeren bir hata olayı gönderin. Geri arama, JScript çağrı yığınları gibi Watson arka ucuna gönderilecek pahalı verileri hesaplamak için kullanılabilir, vb. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, FaultSeverity, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Özel durum nesnesi ve geri çağırma içeren bir hata olayı gönderin. Geri arama, JScript çağrı yığınları gibi Watson arka ucuna gönderilecek pahalı verileri hesaplamak için kullanılabilir, vb. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, Exception) |
Yönetilen Bir Özel Durum nesnesiyle Hata Olayı gönderme. Demet parametreleri özel durum nesnesinden oluşturulur. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>) |
Özel durum nesnesi ve geri çağırma içeren bir hata olayı gönderin. Geri arama, JScript çağrı yığınları gibi Watson arka ucuna gönderilecek pahalı verileri hesaplamak için kullanılabilir, vb. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostFault(TelemetrySession, String, String, Exception, Func<IFaultUtility,Int32>, TelemetryEventCorrelation[]) |
Özel durum nesnesi ve geri çağırma içeren bir hata olayı gönderin. Geri arama, JScript çağrı yığınları gibi Watson arka ucuna gönderilecek pahalı verileri hesaplamak için kullanılabilir, vb. Ile bağıntılı UserTaskEvent olduğunda veya OperationEvent hata oluşumuna yol açmış olabileceğinde daha kullanışlı hale gelir. |
| PostOperation(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
bir İşlem olayı gönderin. İşlem uygulamada bazı çalışmalar gerçekleştirir ve sonuçla birlikte gelir (örneğin, Başarı, Başarısızlık). İşlem kullanıcı tarafından doğrudan çağrılırsa, lütfen veya ilgili yöntemleri kullanın UserTaskEvent . lisans denetimi, paket yükleme, windows düzeni yükleme işlemlerine birkaç örnek verilebilir. Bu yöntem, çok hızlı çalışan veya işlem süresini analiz etmek için çok az değere sahip atomik işlem için kullanılır. Çağıran, işlem tamamlandığında bu yöntemi çağırır. Uzun süre çalışan veya zaman uyumsuz işlem için, zaman içinde başka neler olduğunu anlamak veya hata nedeniyle kısmen tamamlanıp tamamlanmadığını izlemek için hem başlangıç hem de bitiş noktalarını izleyen yöntemi StartOperation(TelemetrySession, String) kullanın. |
| PostUserTask(TelemetrySession, String, TelemetryResult, String, TelemetryEventCorrelation[]) |
Kullanıcı görevi için bir olay gönderin. Kullanıcı görevi, user tarafından doğrudan çağrılan ve sonuçla (başarı, başarısızlık gibi) gelen bir uygulama işlemidir. Kullanıcı davranışı/amaç analizi için kullanılır. Kullanıcı işlemi biliyor ve yürütebiliyor. Örneğin açık proje ve Araç pencerelerini göster kullanıcı görevleridir; Bunun yerine VS paketini yükleme ve Tasarım zamanı derleme işlemleridir. Bu yöntem, çok hızlı çalışan veya işlem süresini analiz etmek için çok az değere sahip atomik kullanıcı görevi için kullanılır. Çağıran, kullanıcı görevi tamamlandığında bu yöntemi çağırır. Uzun süre çalışan veya zaman uyumsuz kullanıcı görevi için, zaman içinde başka neler olduğunu anlamak veya hata nedeniyle kısmen tamamlanıp tamamlanmadığını izlemek için hem başlangıç hem de bitiş noktalarını izleyen yöntemi StartUserTask(TelemetrySession, String) kullanın. |
| StartOperation(TelemetrySession, String) |
İşlem çalışmasının başına bir OperationEvent deftere naklederek izleme işlemini başlatın ve bir TelemetryScope<T> nesne döndürin. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir OperationEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartOperation(TelemetrySession, String, TelemetryScopeSettings) |
İşlem çalışmasının başında belirtilen özelliklere sahip bir OperationEvent deftere naklederek işlemi izlemeye başlayın ve bir TelemetryScope<T> nesne döndürin. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir OperationEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartOperation(TelemetrySession, String, TelemetrySeverity) |
İşlem çalışmasının başına bir OperationEvent deftere naklederek izleme işlemini başlatın ve bir TelemetryScope<T> nesne döndürin. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir OperationEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
İşlem çalışmasının başında belirtilen özelliklere sahip bir OperationEvent deftere naklederek işlemi izlemeye başlayın ve bir TelemetryScope<T> nesne döndürin. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir OperationEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartOperation(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
İşlem çalışmasının başında belirtilen özelliklere sahip bir OperationEvent deftere naklederek işlemi izlemeye başlayın ve bir TelemetryScope<T> nesne döndürin. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir OperationEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartUserTask(TelemetrySession, String) |
Kullanıcı görevi çalışmasının başına bir UserTaskEvent göndererek kullanıcı görevini izlemeye başlayın ve sonra bir TelemetryScope<T> nesne döndürebilirsiniz. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir UserTaskEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartUserTask(TelemetrySession, String, TelemetryScopeSettings) |
Kullanıcı görevi çalışmasının başında belirtilen özelliklere sahip bir UserTaskEvent gönderip bir TelemetryScope<T> nesne döndürerek kullanıcı görevini izlemeye başlayın. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir UserTaskEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartUserTask(TelemetrySession, String, TelemetrySeverity) |
Kullanıcı görevi çalışmasının başına bir UserTaskEvent göndererek kullanıcı görevini izlemeye başlayın ve sonra bir TelemetryScope<T> nesne döndürebilirsiniz. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir UserTaskEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>) |
Kullanıcı görevi çalışmasının başında belirtilen özelliklere sahip bir UserTaskEvent gönderip bir TelemetryScope<T> nesne döndürerek kullanıcı görevini izlemeye başlayın. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir UserTaskEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |
| StartUserTask(TelemetrySession, String, TelemetrySeverity, IDictionary<String,Object>, TelemetryEventCorrelation[]) |
Kullanıcı görevi çalışmasının başında belirtilen özelliklere sahip bir UserTaskEvent gönderip bir TelemetryScope<T> nesne döndürerek kullanıcı görevini izlemeye başlayın. Kullanıcı görevi tamamlandığında, bitiş noktası için başka bir UserTaskEvent görev göndermek için yöntemini End(TelemetryResult, String) çağırın. Aynı olay adı hem başlangıç hem de bitiş olayları tarafından kullanıldığından lütfen Başlangıç veya Bitiş olay adını kullanmayın. |