ADS

ADS

Ambil data di IIS7 dengan ASP.NRT

Posted by Webb Matrix on Tuesday, December 20, 2011

Solusi demonstrasi keseluruhan telah dikembangkan menggunakan Visual Studio 2005 Professional Edition pada Windows 2003 Server Edition Standar. Harap dicatat bahwa saya tidak benar-benar menguji solusi pada salah satu versi lain / edisi dari suite serupa produk Microsoft.
Anda perlu merujuk / impor semua ruang nama berikut sebelum Anda melangkah lebih jauh:
Sistem Impor
Impor System.Management
Impor System.Data
"System.Management" harus ditambahkan secara terpisah ke daftar referensi (yang tidak datang secara default).
Komponen IIS 6,0
Mengambil informasi asli dari IIS 6.0 bukanlah tugas yang membosankan. Bahkan, kita harus tahu tentang ruang nama tertentu dan kelas, yang terutama digunakan untuk mengambil informasi tentang IIS. Meskipun judul artikel ini mengatakan "ASP.NET 2.0," teknik yang dibahas di sini juga harus bekerja dengan "ASP.NET 1.1" (meskipun saya tidak tes). Jika Anda menemukan masalah, silakan melakukan posting sehingga saya dapat menjawab untuk Anda.
Meskipun tidak penting, adalah berguna untuk berbicara sedikit tentang IIS versi 6.0 dalam konteks ini. IIS 6.0 adalah generasi berikutnya dari server web yang tersedia dalam platform Windows Server 2003. IIS 6,0 jelas menyediakan perangkat tambahan selama beberapa IIS 5,0 yang terutama ditujukan untuk meningkatkan kehandalan, pengelolaan, skalabilitas, dan keamanan. IIS 6.0 adalah komponen kunci dari platform Windows Server 2003 aplikasi, menggunakan yang Anda dapat mengembangkan dan menyebarkan kinerja tinggi aplikasi Web ASP.NET, XML dan Web Services.
IIS 6.0 internal mengandung komponen yang disebut HTTP.SYS. HTTP.SYS merupakan kernel-mode (OS tingkat) HTTP pendengar mendengarkan permintaan masuk dan antrian permintaan tersebut di antrian yang sesuai. Kernel mendukung mode tidak tersedia di IIS 5.0. Setiap permintaan akan dilayani oleh satu kolam aplikasi. Sebuah kolam aplikasi di IIS 6.0 dapat berisi satu atau lebih aplikasi.
Ada ada komponen lain yang disebut Web Administration Service, yang merupakan konfigurasi pengguna-mode dan manajer proses. Administrasi Layanan Web Komponen terutama melakukan Konfigurasi dan Manajemen Proses. Kolam aplikasi yang digunakan untuk mengelola satu set situs web dan aplikasi. 6,0 IIS dapat mendukung hingga 2.000 kolam aplikasi per server, dan ada kolam beberapa aplikasi operasi pada waktu yang sama.
Bagian berikut akan membantu Anda untuk mengambil informasi IIS menggunakan ASP.NET. Anda harus menyadari bahwa ASP.NET tidak satu-satunya cara untuk mengambil informasi tersebut. Anda juga dapat menggunakan VBScript, VB6, ISMAPI, dll WMI teknologi untuk mengambil informasi yang sama. Tetapi fokus kita akan hanya pada ASP.NET saat ini.

Mengambil informasi dasar IIS menggunakan ASP.NET 2.0

Program berikut akan membantu Anda untuk mengambil informasi dasar IIS.
Protected Sub Button1_Click (ByVal Sebagai pengirim e Obyek, ByVal Sebagai System.EventArgs) Menangani Button1.Click
Coba
Dim dt Sebagai DataTable = getPropertyStruct ()
Dim dr Sebagai DataRow
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsWebInfo")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
 
dr = dt.NewRow
dr ("Nama") = "Keterangan"
dr ("nilai") = queryObj ("Caption")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Deskripsi"
dr ("nilai") = queryObj ("Keterangan")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "InstallDate"
dr ("nilai") = queryObj ("InstallDate")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "MajorIIsVersionNumber"
dr ("nilai") = queryObj ("MajorIIsVersionNumber")
dt.Rows.Add (dr)
 
 
dr = dt.NewRow
dr ("Nama") = "MinorIIsVersionNumber"
dr ("nilai") = queryObj ("MinorIIsVersionNumber")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Nama"
dr ("nilai") = queryObj ("Nama")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Status"
dr ("nilai") = queryObj ("Status")
dt.Rows.Add (dr)
Berikutnya
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Menangkap sesat Sebagai ManagementException
Response.Write (err.Message)
Coba Akhir
End Sub
Rincian tentang program
Meskipun program di atas adalah sedikit panjang, sangat mudah dimengerti. Dalam program di atas saya menggunakan "getPropertyStruct," yang digunakan untuk membuat dan mengembalikan tabel data yang dapat menampung sejumlah "kunci, nilai" pasangan. Anda juga dapat bekerja dengan "koleksi" alih-alih bekerja dengan "getPropertyStruct" didefinisikan sebagai berikut "tabel data.":
Fungsi Swasta getPropertyStruct () As DataTable
Dim dt As New DataTable
dt.Columns.Add (DataColumn Baru ("Nama"))
dt.Columns.Add (DataColumn Baru ("Nilai"))
Kembali dt
End Function
Laporan utama dalam program di atas (pada bagian sebelumnya) adalah sebagai berikut:
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsWebInfo")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
Pernyataan pertama kali terhubung ke "root \ MicrosoftIISv2" namespace. Kami berusaha untuk mengeluarkan pernyataan SELECT berdasarkan built-di kelas, "IIsWebInfo." Ini akan mengembalikan semua objek yang terkait dengan kelas "IIsWebInfo" dan saya menangani mereka (masing-masing) dengan "queryObj" yang tipe "ManagementObject . "
Dengan setiap objek saya terima dari "queryObj," mengekstrak informasi saya menjadi "baris data" baru yang akhirnya akan ditambahkan ke "tabel data" (sebagai berikut).
dr = dt.NewRow
dr ("Nama") = "Nama"
dr ("nilai") = queryObj ("Nama")
dt.Rows.Add (dr)
Akhirnya, saya memberi informasi tabel data ke grid dengan mengeluarkan pernyataan berikut:
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Bagian berikutnya lebih menggali keluar informasi IIS.

Menggali lebih lanjut untuk informasi IIS menggunakan ASP.NET 2.0

Kode dimodifikasi, untuk memiliki sedikit informasi lebih lanjut, akan menjadi sebagai berikut:
Protected Sub Button1_Click (ByVal Sebagai pengirim e Obyek, ByVal Sebagai System.EventArgs) Menangani Button1.Click
Coba
Dim dt Sebagai DataTable = getPropertyStruct ()
Dim dr Sebagai DataRow
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsWebService")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
 
dr = dt.NewRow
dr ("Nama") = "Nama"
dr ("nilai") = queryObj ("Nama")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "DisplayName"
dr ("nilai") = queryObj ("DisplayName")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "pathname"
dr ("nilai") = queryObj ("pathname")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Mulai"
dr ("nilai") = queryObj ("Memulai")
dt.Rows.Add (dr)
 
 
dr = dt.NewRow
dr ("Nama") = "Negara"
dr ("nilai") = queryObj ("Negara")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Status"
dr ("nilai") = queryObj ("Status")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "SystemName"
dr ("nilai") = queryObj ("SystemName")
dt.Rows.Add (dr)
 
Berikutnya
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Menangkap sesat Sebagai ManagementException
Response.Write (err.Message)
Coba Akhir
End Sub
Kali ini, alih-alih bekerja dengan kelas "IIsWebInfo", saya bergeser ke kelas lain, "IIsWebService," yang memberi Anda lebih banyak informasi dari kelas sebelumnya.
Mengambil semua direktori virtual yang hadir di IIS dengan menggunakan ASP. NET 2.0
Ini sedikit berbeda dengan gaya pengkodean di atas. Pertama-tama, mari kita lihat program.
Protected Sub Button1_Click (ByVal Sebagai pengirim e Obyek, ByVal Sebagai System.EventArgs) Menangani Button1.Click
Coba
Dim dt Sebagai getVirtualRootStruct = DataTable ()
Dim dr Sebagai DataRow
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsWebVirtualDir")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
dr = dt.NewRow
dr ("AppRoot") = queryObj ("AppRoot")
dr ("Caption") = queryObj ("Caption")
dr ("Keterangan") = queryObj ("Keterangan")
dr ("Nama") = queryObj ("Nama")
dr ("Status") = queryObj ("Status")
dt.Rows.Add (dr)
Berikutnya
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Menangkap sesat Sebagai ManagementException
Response.Write (err.Message)
Coba Akhir
End Sub
Untuk mendapatkan informasi direktori virtual, kita perlu bekerja dengan "IIsWebVirtualDir" kelas. Ini telah mendapat banyak properti. Aku hanya dipilih yang paling penting. Saya menggunakan rutin lain untuk membentuk struktur, untuk menyimpan informasi properti. Rutin adalah sebagai berikut.
Fungsi Swasta getVirtualRootStruct () As DataTable
Dim dt As New DataTable
dt.Columns.Add (DataColumn Baru ("AppRoot"))
dt.Columns.Add (DataColumn Baru ("Caption"))
dt.Columns.Add (DataColumn Baru ("Keterangan"))
dt.Columns.Add (DataColumn Baru ("Nama"))
dt.Columns.Add (DataColumn Baru ("Status"))
Kembali dt
End Function
Semua kolom secara tidak langsung apa-apa namun sifat, dan sisanya adalah sama seperti yang saya dijelaskan di bagian pertama.

Dapatkah kita belajar lebih banyak tentang direktori virtual (termasuk informasi aplikasi web) hadir di IIS menggunakan ASP.NET 2.0?

Kita dapat menggali lebih jauh lagi, tapi dengan kelas yang berbeda, seperti yang ditunjukkan pada program berikut.
Protected Sub Button1_Click (ByVal Sebagai pengirim e Obyek, ByVal Sebagai System.EventArgs) Menangani Button1.Click
Coba
Dim dt Sebagai getStruct = DataTable ()
Dim dr Sebagai DataRow
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsWebVirtualDirSetting")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
dr = dt.NewRow
dr ("AppPoolId") = queryObj ("AppPoolId")
dr ("Nama") = queryObj ("Nama")
dr ("Path") = queryObj ("Path")
dr ("EnableDirBrowsing") = queryObj ("EnableDirBrowsing")
dt.Rows.Add (dr)
Berikutnya
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Menangkap sesat Sebagai ManagementException
Response.Write (err.Message)
Coba Akhir
End Sub
Untuk mendapatkan lebih mendalam informasi tentang direktori virtual, kita perlu bekerja dengan kelas ini juga memiliki banyak sifat "IIsWebVirtualDirSettng.". Saya memilih hanya yang paling penting. Saya menggunakan rutin lain untuk membentuk struktur, untuk menyimpan informasi properti. Rutin adalah sebagai berikut.
Fungsi Swasta getStruct () As DataTable
Dim dt As New DataTable
dt.Columns.Add (DataColumn Baru ("Nama"))
dt.Columns.Add (DataColumn Baru ("Path"))
dt.Columns.Add (DataColumn Baru ("AppPoolId"))
dt.Columns.Add (Baru DataColumn ("EnableDirBrowsing"))
Kembali dt
End Function
Semua kolom secara tidak langsung apa-apa selain sifat dan sisanya adalah sama seperti yang saya dijelaskan di bagian pertama.
Bagaimana mengambil SMTP, FTP, POP 3 informasi dengan menggunakan ASP. NET 2.0?
Kita bahkan dapat mengambil informasi itu juga. Tapi kita perlu beralih kembali lagi ke gaya pertama. Mari kita lanjutkan dengan kode berikut.
Protected Sub Button1_Click (ByVal Sebagai pengirim e Obyek, ByVal Sebagai System.EventArgs) Menangani Button1.Click
Coba
Dim dt Sebagai DataTable = getPropertyStruct ()
Dim dr Sebagai DataRow
Dim pencari As New ManagementObjectSearcher ("root \ MicrosoftIISv2", "SELECT * FROM IIsSmtpService")
Untuk Setiap queryObj Sebagai ManagementObject Dalam searcher.Get) (
 
dr = dt.NewRow
dr ("Nama") = "DisplayName"
dr ("nilai") = queryObj ("DisplayName")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "pathname"
dr ("nilai") = queryObj ("pathname")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Mulai"
dr ("nilai") = queryObj ("Memulai")
dt.Rows.Add (dr)
 
dr = dt.NewRow
dr ("Nama") = "Negara"
dr ("nilai") = queryObj ("Negara")
dt.Rows.Add (dr)
 
 
dr = dt.NewRow
dr ("Nama") = "SystemName"
dr ("nilai") = queryObj ("SystemName")
dt.Rows.Add (dr)
 
Berikutnya
Aku GridView1.DataSource =. Dt
Aku GridView1.DataBind (.)
Menangkap sesat Sebagai ManagementException
Response.Write (err.Message)
Coba Akhir
End Sub
Untuk mengambil informasi tentang SMTP, kita perlu untuk bekerja dengan kelas Demikian pula, untuk bekerja dengan FTP, kita perlu untuk bekerja dengan "IIsSmtpService." "IIsFtpService," dan seterusnya.

Blog, Updated at: 2:54 PM

0 comments:

Post a Comment

GEO CITY

SOSMED SHARE

Powered by Blogger.