Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft tarafından
Not
Bu makale yazıldığından beri, ASP.NET Üyeliği sağlayıcılarının yerini ASP.NET Identity alır. Bu makalenin yazıldığı sırada öne çıkan Üyelik sağlayıcıları yerine ASP.NET Kimlik platformunu kullanmak için uygulamaları güncelleştirmenizi kesinlikle öneririz. ASP.NET Identity, ASP.NET Üyelik sistemine göre çeşitli avantajlara sahiptir, örneğin:
- Daha iyi performans
- Geliştirilmiş genişletilebilirlik ve test edilebilirlik
- OAuth, OpenID Connect ve iki öğeli kimlik doğrulaması desteği
- Talep Tabanlı Kimlik desteği
- ASP.Net Core ile daha iyi birlikte çalışabilirlik
ASP.NET 2.0'da yapılandırma ve izlemede önemli değişiklikler vardır. Yeni ASP.NET yapılandırma API'si, yapılandırma değişikliklerinin program aracılığıyla yapılmasına olanak tanır. Ayrıca, birçok yeni yapılandırma ayarı yeni yapılandırmalara ve izlemelere olanak tanır.
ASP.NET 2.0'da yapılandırma ve izlemede önemli değişiklikler vardır. Yeni ASP.NET yapılandırma API'si, yapılandırma değişikliklerinin program aracılığıyla yapılmasına olanak tanır. Ayrıca, birçok yeni yapılandırma ayarı yeni yapılandırmalara ve izlemelere olanak tanır.
Bu modülde, yapılandırma API'sinin ASP.NET ASP.NET yapılandırma dosyalarından okuma ve yazma ile ilgili olarak ele alacak ve ayrıca ASP.NET izlemesini ele alacağız. ayrıca ASP.NET izlemede sunulan yeni özellikleri de ele alacağız.
ASP.NET Yapılandırma API'si
ASP.NET yapılandırma API'si, tek bir programlama arabirimi kullanarak uygulama yapılandırma verilerini geliştirmenize, dağıtmanıza ve yönetmenize olanak tanır. Yapılandırma dosyalarındaki XML'yi doğrudan düzenlemeden tam ASP.NET yapılandırmalarını program aracılığıyla geliştirmek ve değiştirmek için yapılandırma API'sini kullanabilirsiniz. Ayrıca, web tabanlı yönetim araçlarında ve Microsoft Yönetim Konsolu (MMC) ek bileşenlerinde, geliştirdiğiniz konsol uygulamalarında ve betiklerde yapılandırma API'sini kullanabilirsiniz.
Aşağıdaki iki yapılandırma yönetimi aracı yapılandırma API'sini kullanır ve .NET Framework sürüm 2.0'a dahil edilir:
- Yönetim görevlerini basitleştirmek için yapılandırma API'sini kullanan ve yapılandırma hiyerarşisinin tüm düzeylerindeki yerel yapılandırma verilerinin tümleşik bir görünümünü sağlayan ASP.NET MMC ek bileşeni.
- Barındırılan siteler de dahil olmak üzere yerel ve uzak uygulamalar için yapılandırma ayarlarını yönetmenize olanak tanıyan Web Sitesi Yönetim Aracı.
ASP.NET yapılandırma API'si, Web sitelerini ve uygulamaları program aracılığıyla yapılandırmak için kullanabileceğiniz bir dizi ASP.NET yönetim nesnesinden oluşur. Yönetim nesneleri bir .NET Framework sınıf kitaplığı olarak uygulanır. Yapılandırma API'sinin programlama modeli, derleme zamanında veri türlerini zorlayarak kod tutarlılığını ve güvenilirliğini sağlamaya yardımcı olur. Uygulama yapılandırmalarını yönetmeyi kolaylaştırmak için yapılandırma API'si, verileri farklı yapılandırma dosyalarından ayrı koleksiyonlar olarak görüntülemek yerine yapılandırma hiyerarşisindeki tüm noktalardan birleştirilen verileri tek bir koleksiyon olarak görüntülemenizi sağlar. Ayrıca yapılandırma API'si, yapılandırma dosyalarındaki XML'yi doğrudan düzenlemeden tüm uygulama yapılandırmalarını işlemenizi sağlar. Son olarak API, Web Sitesi Yönetim Aracı gibi yönetim araçlarını destekleyerek yapılandırma görevlerini basitleştirir. Yapılandırma API'si, bir bilgisayarda yapılandırma dosyalarının oluşturulmasını destekleyerek ve birden çok bilgisayarda yapılandırma betikleri çalıştırarak dağıtımı basitleştirir.
Not
Yapılandırma API'si IIS uygulamalarının oluşturulmasını desteklemez.
Yerel ve Uzak Yapılandırma Ayarlarıyla Çalışma
Yapılandırma nesnesi, bilgisayar gibi belirli bir fiziksel varlığa veya uygulama ya da Web sitesi gibi bir mantıksal varlığa uygulanan yapılandırma ayarlarının birleştirilmiş görünümünü temsil eder. Belirtilen mantıksal varlık yerel bilgisayarda veya uzak sunucuda bulunabilir. Belirtilen varlık için yapılandırma dosyası olmadığında, Configuration nesnesi Machine.config dosyası tarafından tanımlanan varsayılan yapılandırma ayarlarını temsil eder.
Aşağıdaki sınıflardan açık yapılandırma yöntemlerinden birini kullanarak bir Configuration nesnesi alabilirsiniz:
- Varlığınız bir istemci uygulamasıysa ConfigurationManager sınıfı.
- Varlığınız bir Web uygulamasıysa WebConfigurationManager sınıfı.
Bu yöntemler, temel yapılandırma dosyalarını işlemek için gerekli yöntemleri ve özellikleri sağlayan bir Configuration nesnesi döndürür. Bu dosyalara okumak veya yazmak için erişebilirsiniz.
Okunanlar
Yapılandırma bilgilerini okumak için GetSection veya GetSectionGroup yöntemini kullanırsınız. Okuyan kullanıcı veya işlemin hiyerarşideki tüm yapılandırma dosyalarında Okuma izinlerine sahip olması gerekir.
Not
Yol parametresini alan statik bir GetSection yöntemi kullanırsanız, yol parametresi kodun çalıştığı uygulamaya başvurmalıdır. Aksi takdirde parametresi yoksayılır ve çalışmakta olan uygulamanın yapılandırma bilgileri döndürülür.
Yazılanlar
Yapılandırma bilgilerini yazmak için Save yöntemlerinden birini kullanırsınız. Yazma işleminin geçerli yapılandırma hiyerarşisi düzeyindeki yapılandırma dosyası ve dizini üzerinde Yazma izinlerine ve hiyerarşideki tüm yapılandırma dosyalarında Okuma izinlerine sahip olması gerekir.
Belirtilen varlığın devralınan yapılandırma ayarlarını temsil eden bir yapılandırma dosyası oluşturmak için aşağıdaki save-configuration yöntemlerinden birini kullanın:
- Yeni bir yapılandırma dosyası oluşturmak için Save yöntemi.
- Başka bir konumda yeni bir yapılandırma dosyası oluşturmak için SaveAs yöntemi.
Yapılandırma Sınıfları ve Ad Alanları
Birçok yapılandırma sınıfı ve yöntemi birbirine benzer. Aşağıdaki tabloda en yaygın kullanılan yapılandırma sınıfları ve ad alanları açıklanmaktadır.
Yapılandırma sınıfı veya ad alanı | Açıklama |
---|---|
System.Configuration ad alanı | Tüm .NET Framework uygulamaları için ana yapılandırma sınıflarını içerir. Bölüm işleyici sınıfları GetSection ve GetSectionGroup gibi yöntemlerden bir bölümün yapılandırma verilerini almak için kullanılır. Bu iki yöntem statik değildir. |
System.Configuration.Configuration sınıfı | Bir bilgisayar, uygulama, Web dizini veya başka bir kaynak için yapılandırma verileri kümesini temsil eder. Bu sınıf, yapılandırma ayarlarını güncelleştirmek ve bölümlere ve bölüm gruplarına başvurular almak için GetSection ve GetSectionGroup gibi yararlı yöntemler içerir. Bu sınıf, WebConfigurationManager ve ConfigurationManager sınıflarının yöntemleri gibi tasarım zamanı yapılandırma verilerini alan yöntemler için dönüş türü olarak kullanılır. |
System.Web.Configuration ad alanı | ASP.NET Yapılandırma Ayarları'nda tanımlanan ASP.NET yapılandırma bölümleri için bölüm işleyici sınıflarını içerir. Bölüm işleyici sınıfları GetSection ve GetSectionGroup gibi yöntemlerden bir bölümün yapılandırma verilerini almak için kullanılır. |
System.Web.Configuration.WebConfigurationManager sınıfı | Çalışma zamanı ve tasarım zamanı yapılandırma ayarlarına başvuru almak için yararlı yöntemler sağlar. Bu yöntemler, dönüş türü olarak System.Configuration.Configuration sınıfını kullanır. Bu sınıfın statik GetSection yöntemini veya System.Configuration.ConfigurationManager sınıfının statik olmayan GetSection yöntemini birbirinin yerine kullanabilirsiniz. Web uygulaması yapılandırmaları için System.Configuration.ConfigurationManager sınıfı yerine System.Web.Configuration.WebConfigurationManager sınıfı önerilir. |
System.Configuration.Provider ad alanı | Yapılandırma sağlayıcısını özelleştirmek ve genişletmek için bir yol sağlar. Bu, yapılandırma sistemindeki tüm sağlayıcı sınıfları için temel sınıftır. |
System.Web.Management ad alanı | Web uygulamalarının sistem durumunu yönetmek ve izlemek için sınıfları ve arabirimleri içerir. Açıkça belirtmek gerekirse, bu ad alanı yapılandırma API'sinin bir parçası olarak kabul edilmez. Örneğin, izleme ve olay tetikleme işlemi bu ad alanındaki sınıflar tarafından gerçekleştirilir. |
System.Management.Instrumentation ad alanı | Uygulamaların yönetim bilgilerini ve olaylarını Windows Yönetim Araçları (WMI) aracılığıyla potansiyel tüketicilerin kullanımına sunması için gerekli sınıfları sağlar. ASP.NET sistem durumu izlemesi olayları teslim etmek için WMI kullanır. Açıkça belirtmek gerekirse, bu ad alanı yapılandırma API'sinin bir parçası olarak kabul edilmez. |
ASP.NET Yapılandırma Dosyaları'ndan okuma
WebConfigurationManager sınıfı, ASP.NET yapılandırma dosyalarından okumak için temel sınıftır. ASP.NET yapılandırma dosyalarını okumanın üç adımı vardır:
- OpenWebConfiguration yöntemini kullanarak bir Configuration nesnesi alın.
- Yapılandırma dosyasında istenen bölüme başvuru alın.
- Yapılandırma dosyasından istediğiniz bilgileri okuyun.
Configuration nesnesi belirli bir yapılandırma dosyasını temsil etmiyor. Bunun yerine, bir bilgisayar, uygulama veya Web sitesinin yapılandırmasının birleştirilmiş görünümünü temsil eder. Aşağıdaki kod örneği, ProductInfo adlı bir Web uygulamasının yapılandırmasını temsil eden bir Configuration nesnesinin örneğini oluşturur.
Configuration config = WebConfigurationManager.OpenWebConfiguration("/ProductInfo);
Not
/ProductInfo yolu yoksa yukarıdaki kodun machine.config dosyasında belirtilen varsayılan yapılandırmayı döndüreceğini unutmayın.
Configuration nesnesine sahip olduktan sonra, yapılandırma ayarlarında detaya gitmek için GetSection veya GetSectionGroup yöntemini kullanabilirsiniz. Aşağıdaki örnek, yukarıdaki ProductInfo uygulamasının kimliğe bürünme ayarlarına bir başvuru alır:
Configuration config =
WebConfigurationManager.OpenWebConfiguration("/ProductInfo);
IdentitySection section =
(IdentitySection)config.GetSection("system.web/identity");
ASP.NET Yapılandırma Dosyalarına Yazma
Yapılandırma dosyalarından okurken olduğu gibi, WebConfigurationManager sınıfı da Asp.NET yapılandırma dosyalarına yazmanın temelidir. ASP.NET yapılandırma dosyalarına yazmanın üç adımı da vardır.
- OpenWebConfiguration yöntemini kullanarak bir Configuration nesnesi alın.
- Yapılandırma dosyasında istenen bölüme başvuru alın.
- Save veya SaveAs yöntemini kullanarak yapılandırma dosyasından istenen bilgileri yazın.
Aşağıdaki kod, derleme> öğesinin <debug özniteliğini false olarak değiştirir:
System.Configuration.Configuration updateWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/webApp");
System.Web.Configuration.CompilationSection compilation =
updateWebConfig.GetSection("system.web/compilation")
as System.Web.Configuration.CompilationSection;
compilation.Debug = false;
if (!compilation.SectionInformation.IsLocked) {
updateWebConfig.Save();
Response.Write("Save Success!");
} else {
Response.Write("Save Failed!");
}
Bu kod yürütürken, webApp uygulamasının <web.config dosyası için derleme> öğesinin debug özniteliği false olarak ayarlanır.
System.Web.Management Ad Alanı
System.Web.Management ad alanı, ASP.NET uygulamaların sistem durumunu yönetmek ve izlemek için sınıfları ve arabirimleri sağlar.
Günlüğe kaydetme işlemi, olayları bir sağlayıcıyla ilişkilendiren bir kural tanımlanarak gerçekleştirilir. Kural, sağlayıcıya gönderilen olayların türünü tanımlar. Aşağıdaki temel olayları günlüğe kaydetmeniz için kullanabilirsiniz:
WebBaseEvent | Tüm olaylar için temel olay sınıfı. Olay kodu, olay ayrıntı kodu, olayın oluşturulduğu tarih ve saat, sıra numarası, olay iletisi ve olay ayrıntıları gibi tüm olaylar için gerekli özellikleri içerir. |
---|---|
Webmanagementevent | Uygulama ömrü, istek, hata ve denetim olayları gibi yönetim olayları için temel olay sınıfı. |
WebHeartbeatEvent | Yararlı çalışma zamanı durum bilgilerini yakalamak için uygulama tarafından düzenli aralıklarla oluşturulan olay. |
Webauditevent | Yetkilendirme hatası, şifre çözme hatası vb. gibi koşulları işaretlemek için kullanılan güvenlik denetimi olayları için temel sınıf. |
WebRequestEvent | Tüm bilgilendirme isteği olayları için temel sınıf. |
Webbaseerrorevent | Hata koşullarını gösteren tüm olaylar için temel sınıf. |
Kullanılabilir sağlayıcı türleri olay çıkışını Olay Görüntüleyicisi, SQL Server, Windows Yönetim Araçları 'na (WMI) ve e-postaya göndermenize olanak sağlar. Önceden yapılandırılmış sağlayıcılar ve olay eşlemeleri, olay çıkışını günlüğe kaydetmek için gereken çalışma miktarını azaltır.
ASP.NET 2.0, başlatma ve durdurma uygulama etki alanlarını temel alan olayları günlüğe kaydetmek ve işlenmeyen özel durumları günlüğe kaydetmek için Olay Günlüğü sağlayıcısını kullanıma açık olarak kullanır. Bu, bazı temel senaryoları ele almaya yardımcı olur. Örneğin, uygulamanızın bir özel durum oluşturduğunu, ancak kullanıcının hatayı kaydetmediğini ve yeniden oluşturamazsınız. Varsayılan Olay Günlüğü kuralıyla, ne tür bir hata oluştuğu hakkında daha iyi bir fikir edinmek için özel durum ve yığın bilgilerini toplayabilirsiniz. Uygulamanız oturum durumunu kaybediyorsa başka bir örnek de geçerlidir. Bu durumda, uygulama etki alanının geri dönüşüm yapıp yapmadığını ve uygulama etki alanının ilk etapta neden durdurulduğunu belirlemek için Olay Günlüğü'ne bakabilirsiniz.
Ayrıca sistem durumu izleme sistemi genişletilebilir. Örneğin, özel Web olayları tanımlayabilir, bunları uygulamanız içinde tetikleyebilir ve ardından olay bilgilerini e-postanız gibi bir sağlayıcıya göndermek için bir kural tanımlayabilirsiniz. Bu sayede izlemenizi kolayca sistem durumu izleme sağlayıcılarına bağlayabilirsiniz. Başka bir örnek olarak, bir sipariş her işlendiğinde bir olayı tetikleyip her olayı SQL Server veritabanına gönderen bir kural ayarlayabilirsiniz. Ayrıca, kullanıcı bir satırda birden çok kez oturum açamadığında bir olayı tetikleyip olayı e-posta tabanlı sağlayıcıları kullanacak şekilde ayarlayabilirsiniz.
Varsayılan sağlayıcıların ve olayların yapılandırması genel Web.config dosyasında depolanır. Genel Web.config dosyası, Machine.config dosyasında depolanan tüm Web tabanlı ayarları ASP.NET 1x'te depolar. Genel Web.config dosyası aşağıdaki dizinde bulunur:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
Genel <Web.config dosyasının healthMonitoring> bölümü varsayılan yapılandırma ayarlarını sağlar. Uygulamanızın Web.config dosyasında healthMonitoring <> bölümünü uygulayarak bu ayarı geçersiz kılabilir veya kendi ayarlarınızı yapılandırabilirsiniz.
Genel <Web.config dosyasının healthMonitoring> bölümü aşağıdaki öğeleri içerir:
Sağlayıcı | Olay Görüntüleyicisi, WMI ve SQL Server için ayarlanan sağlayıcıları içerir. |
---|---|
Eventmappings | Çeşitli WebBase sınıfları için eşlemeler içerir. Kendi olay sınıfınızı oluşturursanız bu listeyi genişletebilirsiniz. Kendi olay sınıfınızı oluşturmak, bilgi gönderdiğiniz sağlayıcılar üzerinde size daha ayrıntılı bir ayrıntı sağlar. Örneğin, e-postaya kendi özel olaylarınızı gönderirken işlenmeyen özel durumları SQL Server gönderilecek şekilde yapılandırabilirsiniz. |
Kural -ları | eventMappings öğesini sağlayıcıya bağlar. |
Tamponlama | Olayları sağlayıcıya ne sıklıkta temizleneceğini belirlemek için SQL Server ve e-posta sağlayıcılarıyla birlikte kullanılır. |
Aşağıda genel Web.config dosyasından bir kod örneği verilmiştir.
<healthMonitoring>
<!-- Event Log Provider being added. -->
<providers>
<add name="EventLogProvider"
type="System.Web.Management.EventLogWebEventProvider,
System.Web,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
<!-- Event mapping provides a friendly name to the
events based on the WebBaseErrorEvent class. -->
<eventMappings>
<add name="All Errors"
type="System.Web.Management.WebBaseErrorEvent,
System.Web,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
startEventCode="0" endEventCode="2147483647" />
</eventMappings>
<!-- Rule tying the "All Errors" event mapping to the EventLog Provider. -->
<rules>
<add name="All Errors Default" eventName="All Errors"
provider="EventLogProvider"
profile="Default" minInstances="1"
maxLimit="Infinite" minInterval="00:01:00" custom="" />
</rules>
</healthMonitoring>
Olayları Olay Görüntüleyicisi depolama
Daha önce belirtildiği gibi, Olay Görüntüleyicisi olayları günlüğe kaydetme sağlayıcısı genel Web.config dosyasında sizin için yapılandırılır. Varsayılan olarak, WebBaseErrorEvent ve WebFailureAuditEvent tabanlı tüm olaylar günlüğe kaydedilir. Olay Günlüğü'ne ek bilgi kaydetmek için ek kurallar ekleyebilirsiniz. Örneğin, tüm olayları (webBaseEvent tabanlı her olay) günlüğe kaydetmek istiyorsanız, Web.config dosyanıza aşağıdaki kuralı ekleyebilirsiniz:
<healthMonitoring>
<rules>
<add name="All Events" eventName="All Events"
provider="EventLogProvider" profile="Critical" />
</rules>
</healthMonitoring>
Bu kural Tüm Olaylar olay eşlemesini Olay Günlüğü sağlayıcısına bağlar. Hem eventMapping hem de sağlayıcı genel Web.config dosyasına dahil edilir.
Olayları SQL Server depolama
Bu yöntem, Aspnet_regsql.exe aracı tarafından oluşturulan ASPNETDB veritabanını kullanır. Varsayılan sağlayıcı, App_data klasöründeki dosya tabanlı veritabanını veya SQL Server yerel SQLExpress örneğini kullanan LocalSqlServer bağlantı dizesini kullanır. Hem LocalSqlServer bağlantı dizesi hem de SqlProvider genel Web.config dosyasında yapılandırılır.
Genel Web.config dosyasındaki LocalSqlServer bağlantı dizesi şöyle görünür:
<connectionStrings>
<add name="LocalSqlServer"
connectionString="data source=.\SQLEXPRESS;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
Başka bir SQL Server örneği kullanmak istiyorsanız, %windir%\Microsoft.Net\Framework\v2.0.* klasöründe bulunan Aspnet_regsql.exe aracını kullanmanız gerekir. Aspnet_regsql.exe aracını kullanarak SQL Server örneğinde özel bir ASPNETDB veritabanı oluşturun, ardından bağlantı dizesini uygulama yapılandırma dosyanıza ekleyin ve ardından yeni bağlantı dizesini kullanarak bir sağlayıcı ekleyin. ASPNETDB veritabanını oluşturduktan sonra, bir eventMapping öğesini sqlProvider'a bağlamak için bir kural ayarlamanız gerekir.
Varsayılan SqlProvider'ı kullanmanız veya kendi sağlayıcınızı yapılandırmanız fark etmeksizin, sağlayıcıyı bir olay haritasıyla ilişkilendiren bir kural eklemeniz gerekir. Aşağıdaki kural, yukarıda oluşturduğunuz yeni sağlayıcıyı Tüm Olaylar olay eşlemesine bağlar. Bu kural , WebBaseEvent tabanlı tüm olayları günlüğe kaydeder ve MYASPNETDB bağlantı dizesini kullanacak MySqlWebEventProvider'a gönderir. Aşağıdaki kod, sağlayıcıyı bir olay eşlemesine bağlamak için bir kural ekler:
<healthMonitoring>
<rules>
<add name="All Events" eventName="All Events"
provider="MySqlWebEventProvider" profile="Critical"/>
</rules>
</healthMonitoring>
Yalnızca hataları SQL Server göndermek istiyorsanız aşağıdaki kuralı ekleyebilirsiniz:
<add name="All Errors"
eventName="All Errors"
provider="MySqlWebEventProvider"
profile="Critical"/>
Olayları WMI'ye iletme
Olayları WMI'ya da iletebilirsiniz. WMI sağlayıcısı varsayılan olarak genel Web.config dosyasında sizin için yapılandırılır.
Aşağıdaki kod örneği olayları WMI'ye iletmek için bir kural ekler:
<providers>
<add name="WmiWebEventProvider"
type="System.Web.Management.WmiWebEventProvider,System.Web,
Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Bir eventMapping öğesini sağlayıcıyla ilişkilendirmek için bir kural ve olayları dinlemek için bir WMI dinleyici uygulaması eklemeniz gerekir. Aşağıdaki kod örneği, WMI sağlayıcısını Tüm Olaylar olay eşlemesine bağlamak için bir kural ekler:
<rules>
<add name="All Events"
eventName="All Events" provider="WmiWebEventProvider"
profile="Critical" />
</rules>
Olayları e-postaya iletme
Olayları e-postaya da iletebilirsiniz. SQL Server veya Olay Günlüğü için daha uygun olabilecek birçok bilgiyi istemeden kendinize gönderebileceğiniz için, e-posta sağlayıcınızla hangi olay kurallarını eşlediğinize dikkat edin. İki e-posta sağlayıcısı vardır; SimpleMailWebEventProvider ve TemplatedMailWebEventProvider. Her ikisi de yalnızca TemplatedMailWebEventProvider üzerinde kullanılabilen "template" ve "detailedTemplateErrors" öznitelikleri dışında aynı yapılandırma özniteliklerine sahiptir.
Not
Bu e-posta sağlayıcılarının hiçbiri sizin için yapılandırılmamış. Bunları Web.config dosyanıza eklemeniz gerekir.
Bu iki e-posta sağlayıcısı arasındaki temel fark, SimpleMailWebEventProvider'ın değiştirilemeyen genel bir şablonda e-posta göndermesidir. Örnek Web.config dosyası, aşağıdaki kuralı kullanarak bu e-posta sağlayıcısını yapılandırılan sağlayıcılar listesine ekler:
<add name="mySimple-mailWebEventProvider"
type="System.Web.Management.Simple-mailWebEventProvider"
to="e-mail@foo.com" from="e-mail@foo.com"
maxMessagesPerNotification="1" maxEventsPerMessage="10"
buffer="true" bufferMode="Critical Notification"
subjectPrefix="Web Events"/>
E-posta sağlayıcısını Tüm Olaylar olay eşlemesine bağlamak için aşağıdaki kural da eklenir:
<add name="All Events" eventName="All Events"
provider="mySimple-mailWebEventProvider" profile="Critical"/>
ASP.NET 2.0 İzleme
ASP.NET 2.0'da izleme için üç önemli geliştirme vardır.
- Tümleşik izleme işlevselliği
- İzleme iletilerine programlı erişim
- Geliştirilmiş uygulama düzeyinde izleme
Tümleşik İzleme İşlevselliği
Artık System.Diagnostics.Trace sınıfı tarafından yayılan iletileri, izleme çıktısını ASP.NET ve ASP.NET izleme tarafından yayılan iletileri System.Diagnostics.Trace'e yönlendirebilirsiniz. ayrıca ASP.NET izleme olaylarını System.Diagnostics.Trace'e iletebilirsiniz. Bu işlevsellik, izleme> öğesinin yeni writeToDiagnosticsTrace özniteliği <tarafından sağlanır. Bu Boole değeri true olduğunda, ASP.NET İzleme iletileri İzleme iletilerini görüntülemek üzere kayıtlı dinleyiciler tarafından kullanılmak üzere System.Diagnostics izleme altyapısına iletilir.
İzleme İletilerine ProgramLı Erişim
ASP.NET 2.0, TraceContextRecord sınıfı ve TraceRecords koleksiyonu aracılığıyla tüm izleme iletilerine programlı erişim sağlar. İzleme iletilerine erişmenin en verimli yolu, yeni TraceFinished olayını işlemek için bir TraceContextEventHandler temsilcisini (ASP.NET 2.0'da da yenidir) kaydetmektir. Ardından izleme iletileri arasında istediğiniz gibi döngü yapabilirsiniz.
Aşağıdaki kod örneği bunu göstermektedir:
void Page_Load(object sender, EventArgs e) {
// Register a handler for the TraceFinished event.
Trace.TraceFinished += new
TraceContextEventHandler(this.OnTraceFinished);
// Write a trace message.
Trace.Write("Web Forms Infrastructure Methods",
"USERMESSAGE: Page_Load complete.");
}
// A TraceContextEventHandler for the TraceFinished event.
void OnTraceFinished(object sender, TraceContextEventArgs e) {
TraceContextRecord r = null;
// Iterate through the collection of trace records and write
// them to the response stream.
foreach (object o in e.TraceRecords) {
r = (TraceContextRecord)o;
Response.Write(String.Format("trace message: {0} <BR>",
r.Message));
}
}
Yukarıdaki örnekte TraceRecords koleksiyonunda döngü yapıp her iletiyi Yanıt akışına yazıyorum.
Geliştirilmiş Application-Level İzleme
Uygulama düzeyinde izleme, izleme> öğesinin yeni mostRecent özniteliğinin <kullanıma sunulmasıyla geliştirilmiştir. Bu öznitelik, en son uygulama düzeyi izleme çıkışının görüntülenip görüntülenmeyeceğini ve requestLimit tarafından belirtilen sınırların ötesindeki eski izleme verilerinin atılıp atılmayacağını belirtir. False ise, requestLimit özniteliğine ulaşılana kadar istekler için izleme verileri görüntülenir.
komut satırı araçlarını ASP.NET
ASP.NET yapılandırmasına yardımcı olacak çeşitli komut satırı araçları vardır. ASP.NET geliştiricilerin aspnet_regiis.exe aracı hakkında bilgi sahibi olması gerekir. ASP.NET 2.0, yapılandırmaya yardımcı olmak için üç komut satırı aracı daha sağlar.
Aşağıdaki komut satırı araçları kullanılabilir:
Araç | Kullanım |
---|---|
aspnet_regiis.exe | IIS ile ASP.NET kaydına izin verir. Bu araçların ASP.NET 2.0 ile birlikte gelen iki sürümü vardır: biri 32 bit sistemler (Framework klasöründe) ve biri 64 bit sistemler için (Framework64 klasöründe).) 64 bit sürüm 32 bit işletim sistemine yüklenmez. |
aspnet_regsql.exe | ASP.NET SQL Server Kaydı aracı, ASP.NET'da SQL Server sağlayıcıları tarafından kullanılmak üzere bir Microsoft SQL Server veritabanı oluşturmak veya mevcut bir veritabanından seçenek eklemek veya kaldırmak için kullanılır. Aspnet_regsql.exe dosyası Web sunucunuzdaki [sürücü:]\WINDOWS\Microsoft.NET\Framework\versionNumber klasöründe bulunur. |
aspnet_regbrowsers.exe | ASP.NET Tarayıcı Kaydı aracı, sistem genelindeki tüm tarayıcı tanımlarını ayrıştırır ve bir derlemeye derler ve derlemeyi genel derleme önbelleğine yükler. Araç, tarayıcı tanım dosyalarını ( kullanır. BROWSER dosyaları) .NET Framework Browsers alt dizininden. Araç %SystemRoot%\Microsoft.NET\Framework\version\ dizininde bulunabilir. |
aspnet_compiler.exe | ASP.NET Derleme aracı, bir ASP.NET Web uygulamasını yerinde veya üretim sunucusu gibi bir hedef konuma dağıtım için derlemenizi sağlar. Uygulama derlendiğinde son kullanıcılar ilk istekte gecikmeyle karşılaşmadığından yerinde derleme uygulama performansına yardımcı olur. |
aspnet_regiis.exe aracı ASP.NET 2.0'da yeni olmadığından burada tartışmayacağız.
ASP.NET SQL Server Kayıt Aracı - aspnet_regsql.exe
ASP.NET SQL Server Kayıt aracını kullanarak çeşitli türlerde seçenekler ayarlayabilirsiniz. Sql bağlantısı belirtebilir, bilgileri yönetmek için hangi ASP.NET uygulama hizmetlerinin SQL Server kullandığını belirtebilir, SQL önbellek bağımlılığı için hangi veritabanının veya tablonun kullanıldığını belirtebilir ve yordamları ve oturum durumunu depolamak için SQL Server kullanma desteği ekleyebilir veya kaldırabilirsiniz.
Çeşitli ASP.NET uygulama hizmetleri, veri kaynağından veri depolamayı ve almayı yönetmek için sağlayıcıyı kullanır. Her sağlayıcı veri kaynağına özgüdür. ASP.NET, aşağıdaki ASP.NET özellikleri için bir SQL Server sağlayıcısı içerir:
- Üyelik ( SqlMembershipProvider sınıfı).
- Rol Yönetimi ( SqlRoleProvider sınıfı).
- Profil ( SqlProfileProvider sınıfı).
- Web Bölümleri Kişiselleştirme ( SqlPersonalizationProvider sınıfı).
- Web Olayları ( SqlWebEventProvider sınıfı).
ASP.NET yüklediğinizde, sunucunuzun Machine.config dosyası bir sağlayıcıyı kullanan ASP.NET özelliklerinin her biri için SQL Server sağlayıcılar belirten yapılandırma öğeleri içerir. Bu sağlayıcılar varsayılan olarak SQL Server Express 2005'in yerel kullanıcı örneğine bağlanacak şekilde yapılandırılır. Sağlayıcılar tarafından kullanılan varsayılan bağlantı dizesini değiştirirseniz, makine yapılandırmasında yapılandırılan ASP.NET özelliklerinden herhangi birini kullanabilmeniz için önce Aspnet_regsql.exe kullanarak seçtiğiniz özelliğin SQL Server veritabanını ve veritabanı öğelerini yüklemeniz gerekir. SQL kayıt aracıyla belirttiğiniz veritabanı zaten yoksa (komut satırında belirtilmemişse aspnetdb varsayılan veritabanı olacaktır), geçerli kullanıcının SQL Server'da veritabanı oluşturma ve bir veritabanı içinde şema öğeleri oluşturma hakları olmalıdır.
SQL Önbelleği Bağımlılığı
ASP.NET çıktısını önbelleğe almanın gelişmiş özelliklerinden biri SQL önbellek bağımlılığıdır. SQL önbellek bağımlılığı iki farklı işlem modunu destekler: biri tablo yoklamasının ASP.NET uygulamasını, diğeri de SQL Server 2005'in sorgu bildirim özelliklerini kullanan ikinci mod. SQL kayıt aracı, işlemin tablo yoklama modunu yapılandırmak için kullanılabilir.
Oturum Durumu
Varsayılan olarak, oturum durumu değerleri ve bilgileri ASP.NET işlemi içinde bellekte depolanır. Alternatif olarak, oturum verilerini birden çok Web sunucusu tarafından paylaşılabilen bir SQL Server veritabanında depolayabilirsiniz. SQL kayıt aracıyla oturum durumu için belirttiğiniz veritabanı zaten yoksa, geçerli kullanıcının SQL Server'da veritabanı oluşturma ve bir veritabanı içinde şema öğeleri oluşturma hakları olmalıdır. Veritabanı varsa, geçerli kullanıcının mevcut veritabanında şema öğeleri oluşturma haklarına sahip olması gerekir.
Oturum durumu veritabanını SQL Server yüklemek için Aspnet_regsql.exe aracını çalıştırın ve komutuyla aşağıdaki bilgileri sağlayın:
- -S seçeneğini kullanarak SQL Server örneğinin adı.
- SQL Server çalıştıran bir bilgisayarda veritabanı oluşturma izni olan bir hesabın oturum açma kimlik bilgileri. Şu anda oturum açmış olan kullanıcıyı kullanmak için -E seçeneğini veya parola belirtmek için -P seçeneğiyle birlikte bir kullanıcı kimliği belirtmek için -U seçeneğini kullanın.
- Oturum durumu veritabanını eklemek için -ssadd komut satırı seçeneği.
Varsayılan olarak, oturum durumu veritabanını SQL Server 2005 Express Sürüm çalıştıran bir bilgisayara yüklemek için Aspnet_regsql.exe aracını kullanamazsınız.
ASP.NET Tarayıcı Kayıt Aracı - aspnet_regbrowsers.exe
ASP.NET sürüm 1.1'de Machine.config dosyası browserCaps> adlı <bir bölüm içeriyordu. Bu bölümde, normal bir ifadeyi temel alan çeşitli tarayıcılar için yapılandırmaları tanımlayan bir dizi XML girdisi yer almaktadır. ASP.NET sürüm 2.0 için yeni bir . BROWSER dosyası, XML girdilerini kullanarak belirli bir tarayıcının parametrelerini tanımlar. Yeni bir tarayıcı ekleyerek yeni bir tarayıcıya bilgi eklersiniz. BROWSER dosyası, sisteminizde %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers konumunda bulunan klasöre.
Bir uygulama her tarayıcı bilgisi gerektirdiğinde .config dosyasını okumadığından, yeni bir oluşturabilirsiniz. BROWSER dosyasını açın ve Aspnet_regbrowsers.exe çalıştırarak derlemeye gerekli değişiklikleri ekleyin. Bu, sunucunun yeni tarayıcı bilgilerine hemen erişmesini sağlar, böylece bilgileri almak için uygulamalarınızın hiçbirini kapatmanız gerekmez. Bir uygulama, geçerli HttpRequest'in Browser özelliği aracılığıyla tarayıcı özelliklerine erişebilir.
aspnet_regbrowser.exe çalıştırırken aşağıdaki seçenekler kullanılabilir:
Seçenek | Açıklama |
---|---|
-? | Komut penceresinde Aspnet_regbbrowsers.exe Yardım metnini görüntüler. |
-i | Çalışma zamanı tarayıcı özellikleri derlemesini oluşturur ve genel derleme önbelleğine yükler. |
-U | Çalışma zamanı tarayıcı özellikleri derlemesini genel bütünleştirilmiş kod önbelleğinden kaldırır. |
ASP.NET Derleme Aracı - aspnet_compiler.exe
ASP.NET Derleme aracı iki genel yolla kullanılabilir: hedef çıkış dizininin belirtildiği dağıtım için yerinde derleme ve derleme.
Uygulamayı Yerinde Derleme
ASP.NET Derleme aracı bir uygulamayı yerinde derleyebilir, yani uygulamaya birden çok istekte bulunma davranışını taklit eder ve bu da normal derlemeye neden olur. Önceden derlenmiş bir sitenin kullanıcıları, sayfanın ilk istekte derlenmesinden kaynaklanan bir gecikme yaşamaz.
Bir siteyi önceden derlediğinizde, aşağıdaki öğeler geçerli olur:
- Site, dosyalarını ve dizin yapısını korur.
- Sunucudaki site tarafından kullanılan tüm programlama dilleri için derleyicileriniz olmalıdır.
- Herhangi bir dosya derlemesi başarısız olursa, sitenin tamamı derlemeyi başarısız olur.
Ayrıca, uygulamaya yeni kaynak dosyaları ekledikten sonra uygulamayı yerinde yeniden derleyebilirsiniz. -c seçeneğini eklemediğiniz sürece araç yalnızca yeni veya değiştirilmiş dosyaları derler.
Not
İç içe uygulama içeren bir uygulamanın derlenmesi, iç içe uygulamayı derlemez. İç içe yerleştirilmiş uygulamanın ayrı olarak derlenmiş olması gerekir.
Dağıtım için Uygulama Derleme
targetDir parametresini belirterek bir uygulamayı dağıtım için derleyebilirsiniz (hedef konuma derleme). targetDir, Web uygulamasının son konumu olabilir veya derlenen uygulama daha fazla dağıtılabilir. -u seçeneğinin kullanılması, uygulamayı derlenmiş uygulamadaki belirli dosyalarda yeniden derlemeden değişiklik yapabileceğiniz şekilde derler. Aspnet_compiler.exe statik ve dinamik dosya türleri arasında ayrım yapar ve sonuçta elde edilen uygulamayı oluştururken bunları farklı işler.
- Statik dosya türleri, .css, .gif, .htm, .html, .jpg, .js vb. uzantılara sahip dosyalar gibi ilişkili bir derleyiciye veya derleme sağlayıcısına sahip olmayanlardır. Bu dosyalar, dizin yapısındaki göreli konumları korunarak hedef konuma kopyalanır.
- Dinamik dosya türleri, .asax, .ascx, .ashx, .aspx, .browser, .master gibi ASP.NET özel dosya adı uzantılarına sahip dosyalar da dahil olmak üzere ilişkili bir derleyiciye veya derleme sağlayıcısına sahip olanlardır. ASP.NET Derleme aracı bu dosyalardan derlemeler oluşturur. -u seçeneği atlanırsa, araç dosya adı uzantısına sahip dosyalar da oluşturur. Özgün kaynak dosyaları derlemelerine eşleyen DERLENDİ. Uygulama kaynağının dizin yapısının korunmasını sağlamak için araç, hedef uygulamadaki ilgili konumlarda yer tutucu dosyalar oluşturur.
Derlenen uygulamanın içeriğinin değiştirilebileceğini belirtmek için -u seçeneğini kullanmanız gerekir. Aksi takdirde, sonraki değişiklikler yoksayılır veya çalışma zamanı hatalarına neden olur.
Aşağıdaki tabloda, -u seçeneği eklendiğinde ASP.NET Derleme aracının farklı dosya türlerini nasıl işlediği açıklanmaktadır.
Dosya türü | Derleyici eylemi |
---|---|
.ascx, .aspx, .master | Bu dosyalar, hem arka planda kod dosyalarını hem de betik runat="server"> öğelerini kapsayan <tüm kodları içeren işaretleme ve kaynak koda ayrılır. Kaynak kodu, karma algoritmadan türetilen adlarla derlemeler halinde derlenir ve derlemeler Bin dizinine yerleştirilir. % ve %> köşeli ayraçları arasında < yer alan tüm satır içi kodlar işaretlemeye dahil edilir ve derlenmez. Kaynak dosyalarla aynı ada sahip yeni dosyalar, işaretlemeyi içerecek şekilde oluşturulur ve karşılık gelen çıkış dizinlerine yerleştirilir. |
.ashx, .asmx | Bu dosyalar derlenmez ve olduğu gibi çıkış dizinlerine taşınır ve derlenmez. İşleyici kodunun derlenmiş olmasını istiyorsanız, kodu App_Code dizinindeki kaynak kod dosyalarına yerleştirin. |
.cs, .vb, .jsl, .cpp (daha önce listelenen dosya türleri için arka planda kod dosyaları dahil değildir) | Bu dosyalar derlenir ve bunlara başvuran derlemelere kaynak olarak eklenir. Kaynak dosyalar çıkış dizinine kopyalanmaz. Bir kod dosyasına başvurulmazsa derlenmez. |
Özel dosya türleri | Bu dosyalar derlenmez. Bu dosyalar ilgili çıkış dizinlerine kopyalanır. |
App_Code alt dizinindeki kaynak kod dosyaları | Bu dosyalar derlemeler halinde derlenir ve Bin dizinine yerleştirilir. |
App_GlobalResources alt dizinindeki .resx ve .resource dosyaları | Bu dosyalar derlemeler halinde derlenir ve Bin dizinine yerleştirilir. Ana çıkış dizini altında App_GlobalResources alt dizini oluşturulmaz ve kaynak dizinde bulunan hiçbir .resx veya .resources dosyası çıkış dizinlerine kopyalanır. |
App_LocalResources alt dizinindeki .resx ve .resource dosyaları | Bu dosyalar derlenmez ve ilgili çıkış dizinlerine kopyalanır. |
App_Themes alt dizinindeki .skin dosyaları | .skin dosyaları ve statik tema dosyaları derlenmez ve karşılık gelen çıkış dizinlerine kopyalanır. |
.browser Web.config Statik dosya türleri Bin dizininde zaten var olan derlemeler | Bu dosyalar çıkış dizinlerine olduğu gibi kopyalanır. |
Aşağıdaki tabloda, -u seçeneği atlandığında ASP.NET Derleme aracının farklı dosya türlerini nasıl işlediği açıklanmaktadır.
Dosya türü | Derleyici eylemi |
---|---|
.aspx, .asmx, .ashx, .master | Bu dosyalar, hem arka planda kod dosyalarını hem de betik runat="server"> öğelerini kapsayan <tüm kodları içeren işaretleme ve kaynak koda ayrılır. Kaynak kodu, karma algoritmadan türetilen adlarla derlemeler halinde derlenir. Sonuçta elde edilen derlemeler Bin dizinine yerleştirilir. % ve %> köşeli ayraçları arasında < yer alan tüm satır içi kodlar işaretlemeye dahil edilir ve derlenmez. Derleyici, kaynak dosyalarla aynı ada sahip işaretlemeyi içerecek yeni dosyalar oluşturur. Elde edilen bu dosyalar Bin dizinine yerleştirilir. Derleyici ayrıca kaynak dosyalarla aynı ada sahip ancak uzantısına sahip dosyalar da oluşturur. Eşleme bilgilerini içeren DERLENDİ. . DERLENDİ dosyalar, kaynak dosyaların özgün konumuna karşılık gelen çıkış dizinlerine yerleştirilir. |
.ascx | Bu dosyalar işaretleme ve kaynak koduna ayrılır. Kaynak kodu derlemeler halinde derlenir ve karma algoritmadan türetilen adlarla Bin dizinine yerleştirilir. Hiçbir işaretleme dosyası oluşturulmaz. |
.cs, .vb, .jsl, .cpp (daha önce listelenen dosya türleri için arka planda kod dosyaları dahil değildir) | .ascx, .ashx veya .aspx dosyalarından oluşturulan derlemeler tarafından başvurulan kaynak kodu derlemeler halinde derlenip Bin dizinine yerleştirilir. Hiçbir kaynak dosya kopyalanır. |
Özel dosya türleri | Bu dosyalar dinamik dosyalar gibi derlenir. Temel aldıkları dosyanın türüne bağlı olarak, derleyici eşleme dosyalarını çıkış dizinlerine yerleştirebilir. |
App_Code alt dizinindeki dosyalar | Bu alt dizindeki kaynak kod dosyaları derlemeler halinde derlenir ve Bin dizinine yerleştirilir. |
App_GlobalResources alt dizinindeki dosyalar | Bu dosyalar derlemeler halinde derlenir ve Bin dizinine yerleştirilir. Ana çıkış dizini altında App_GlobalResources alt dizini oluşturulmaz. Yapılandırma dosyası appliesTo="All" belirtirse, .resx ve .resources dosyaları çıkış dizinlerine kopyalanır. BuildProvider tarafından başvurulsa kopyalanmazlar. |
App_LocalResources alt dizinindeki .resx ve .resource dosyaları | Bu dosyalar benzersiz adlara sahip derlemeler halinde derlenir ve Bin dizinine yerleştirilir. Çıkış dizinlerine hiçbir .resx veya .resource dosyası kopyalanır. |
App_Themes alt dizinindeki .skin dosyaları | Temalar derlemeler halinde derlenir ve Bin dizinine yerleştirilir. Saplama dosyaları .skin dosyaları için oluşturulur ve karşılık gelen çıkış dizinine yerleştirilir. Statik dosyalar (.css gibi) çıkış dizinlerine kopyalanır. |
.browser Web.config Statik dosya türleri Bin dizininde zaten var olan derlemeler | Bu dosyalar çıkış dizinine olduğu gibi kopyalanır. |
Sabit Bütünleştirilmiş Kod Adları
MSI Windows Installer kullanarak bir Web uygulaması dağıtma gibi bazı senaryolar, tutarlı dosya adları ve içeriklerinin yanı sıra derlemeleri veya güncelleştirmelerin yapılandırma ayarlarını tanımlamak için tutarlı dizin yapılarının kullanılmasını gerektirir. Böyle durumlarda, ASP.NET Derleme aracının birden çok sayfanın derlemeler halinde derlendiği yeri kullanmak yerine her kaynak dosya için bir derleme derlemesi derlemesi gerektiğini belirtmek için -fixednames seçeneğini kullanabilirsiniz. Bu çok sayıda derlemeye yol açabilir, bu nedenle ölçeklenebilirlikle ilgileniyorsanız bu seçeneği dikkatli kullanmanız gerekir.
Tanımlayıcı Ad Derlemesi
-aptca, -delaysign, -keycontainer ve -keyfile seçenekleri, Tanımlayıcı Ad Aracı'nı (Sn.exe) ayrı ayrı kullanmadan kesin olarak adlandırılmış derlemeler oluşturmak için Aspnet_compiler.exe kullanabilmeniz için sağlanır. Bu seçenekler sırasıyla AllowPartiallyTrustedCallersAttribute, AssemblyDelaySignAttribute, AssemblyKeyNameAttribute ve AssemblyKeyFileAttribute seçeneklerine karşılık gelir.
Bu özniteliklerin tartışması bu kursun kapsamı dışındadır.
Labs
Aşağıdaki laboratuvarların her biri önceki laboratuvarları oluşturur. Bunları sırayla yapmanız gerekir.
Laboratuvar 1: Yapılandırma API'sini kullanma
- mod9lab adlı yeni bir Web sitesi oluşturun.
- Siteye yeni bir Web Yapılandırma Dosyası ekleyin.
- web.config dosyasına aşağıdakileri ekleyin:
<authorization>
<deny users="?"/>
</authorization>
<identity impersonate="true"/>
Bu, web.config dosyasındaki değişiklikleri kaydetme izninizin olmasını sağlar.
- Default.aspx'a yeni bir Etiket denetimi ekleyin ve kimliği lblDebugStatus olarak değiştirin.
- Default.aspx'a yeni bir Düğme denetimi ekleyin.
- Düğme denetiminin kimliğini btnToggleDebug ve Hata Ayıklama Durumunu Değiştirmek için Metin olarak değiştirin.
- Default.aspx dosyasının arka planındaki kod dosyasının Kod Görünümü'nü açın ve System.Web.Configuration için aşağıdaki gibi bir using deyimi ekleyin:
using System.Web.Configuration;
- Sınıfına iki özel değişken ve aşağıda gösterildiği gibi bir Page_Init yöntemi ekleyin:
public partial class _Default : System.Web.UI.Page {
private bool _debugStatus;
private CompilationSection compilation;
private Configuration config;
protected void Page_Init(object sender, EventArgs e) {
config = WebConfigurationManager.OpenWebConfiguration("/mod9lab");
compilation =
(CompilationSection)config.GetSection("system.web/compilation");
_debugStatus = compilation.Debug;
}
}
- aşağıdaki kodu Page_Load ekleyin:
lblDebugStatus.Text = "Debug set to: " + _debugStatus.ToString();
- default.aspx dosyasını kaydedin ve göz atın. Etiket denetiminin geçerli hata ayıklama durumunu görüntülediğine dikkat edin.
- Tasarımcıda Düğme denetimine çift tıklayın ve Düğme denetimi için Click olayına aşağıdaki kodu ekleyin:
compilation.Debug = !_debugStatus;
config.Save();
lblDebugStatus.Text = "Debug set to: " + compilation.Debug.ToString();
- default.aspx dosyasını kaydedip göz atın ve düğmeye tıklayın.
- Her düğmeye tıkladıktan sonra web.config dosyasını açın ve derleme> bölümünde debug özniteliğini <gözlemleyin.
Laboratuvar 2: Uygulama Yeniden Başlatmalarını Günlüğe Kaydetme
Bu laboratuvarda, Olay Görüntüleyicisi uygulama kapatmaları, başlatmalar ve yeniden derlemelerin günlüğe kaydedilmesini değiştirmenizi sağlayacak bir kod oluşturacaksınız.
- default.aspx'a bir DropDownList ekleyin ve kimliği ddlLogAppEvents olarak değiştirin.
- DropDownList için AutoPostBack özelliğini true olarak ayarlayın.
- DropDownList için Items koleksiyonuna üç öğe ekleyin. İlk öğenin MetinDeğerini ve -1 değerini seçin. İkinci öğenin Metin ve DeğeriTrue , üçüncü öğenin Metin ve Değeriyanlış olsun.
- default.aspx'e yeni bir Etiket ekleyin. Kimliği lblLogAppEvents olarak değiştirin.
- default.aspx için arka planda kod görünümünü açın ve aşağıda gösterildiği gibi HealthMonitoringSection türünde bir değişken için yeni bir bildirim ekleyin:
public partial class _Default : System.Web.UI.Page {
private bool _debugStatus;
private CompilationSection compilation;
private Configuration config;
// new variable below
private HealthMonitoringSection health;
}
- Page_Init'de var olan koda aşağıdaki kodu ekleyin:
health = (HealthMonitoringSection)config.GetSection("system.web/healthMonitoring");
- DropDownList öğesine çift tıklayın ve SelectedIndexChanged olayına aşağıdaki kodu ekleyin:
if (ddlLogAppEvents.SelectedValue != "-1") {
if (Convert.ToBoolean(ddlLogAppEvents.SelectedValue)) {
RuleSettings appRules = new
RuleSettings("AppRestartEvents",
"Application Lifetime Events",
"EventLogProvider");
health.Rules.Add(appRules);
config.Save();
} else {
health.Rules.Remove("AppRestartEvents");
config.Save();
}
}
default.aspx adresine göz atın.
Açılan listeyi False olarak ayarlayın.
Olay Görüntüleyicisi Uygulama günlüğünü temizleyin.
Uygulamanın Debug özniteliğini değiştirmek için düğmeye tıklayın.
Olay Görüntüleyicisi Uygulama günlüğünü yenileyin.
- Herhangi bir olay günlüğe kaydedildi mi?
- Neden yarar veya yaramaz?
Açılan listeyi True olarak ayarlayın .
Uygulamanın Debug özniteliğini değiştirmek için düğmeye tıklayın.
Uygulamanın Olay Görüntüleyicisi oturum açmasını yenileyin.
- Herhangi bir olay günlüğe kaydedildi mi?
- Uygulamanın kapatılmasının nedeni neydi?
Günlüğe kaydetmeyi açıp kapatmayı deneyin ve web.config dosyasında yapılan değişikliklere bakın.
Daha Fazla Bilgi:
ASP.NET 2.0'ın Sağlayıcı modeli, yalnızca uygulama izlemesi için değil Üyelik, Profiller gibi diğer birçok kullanım için de kendi sağlayıcılarınızı oluşturmanıza olanak tanır. Uygulama olaylarını bir metin dosyasına kaydetmek üzere özel bir sağlayıcı yazma hakkında ayrıntılı bilgi için bu bağlantıyı ziyaret edin.