Alperdotnet's Web Log

Ağustos 20, 2008

AspDotNet ile IIS üzerinde websitesi oluşturma

Filed under: AspDotNet — alperdotnet @ 3:12 pm
Tags: , , , , , , , , , ,

Merhabalar;

Bu ilk yazım olacağı için biraz gergin ama kahvem ile ortamımı yumuşatmaya çabalıyorum. Bayağıdır üzerinde çalıştığım panel projesi vardı elbette herkesin hayalidir ki neden plesk kullanayım yada hosting controller kullanayım derken dotnet ile wmi birleşip güçlü bir ikili olunca karşımıza birçok yapabilirliği getirdi. Sizlere bu yazım da AspDotNet ile IIS üzerinde nasıl bir web sitesi oluşturacağımızı anlatacağım. Umarım keyif alarak okursunuz.

İlk önce yeni bir Web Site açalım. İsmi CreateWebSite olsun. DotNet Framework olarak 3.5 kullanmak zorundayız.Oluşturduğumuz website’mızın Appdata yazan klasörün hemen üzerinde ki createwebsite yazan yere sağ tıkladıktan sonra Add Reference ‘e tıklamalıyız. Burada altını çizmeliyim ki DotNet ile yapılan ekstra işlemler de reference lar yardımı ile yapılmaktadır. Özellikle de yeni bir dosya yaratma ve windows’un her hangi bir bölümünü yönetme gibi ekstra işlemler de Add Reference bölümünü kullanmak zorundayız. Bu bölümden System.DirectoryServices / System.DirectoryServices.AccountManagement / System.DirectoryServices.Protocols / System.Management / System.Management.Instrumentation referanslarını eklemeliyiz.

Şimdi referanslarımız eklendi ve sırasında Default.aspx sayfamıza tıklayalım ve içinde ki <div> </div> kısımlarına bu kodları yerleştirelim.

<asp:Label ID=”Label1″ runat=”server” Text=”Sunucu Adresi:”></asp:Label>
<asp:TextBox ID=”sunucu_adresi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label2″ runat=”server” Text=”Web Site Adı:”></asp:Label>
<asp:TextBox ID=”website_adi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label3″ runat=”server” Text=”Web Site Ip Adresi:”></asp:Label>
<asp:TextBox ID=”website_ipadresi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label4″ runat=”server” Text=”Web Site Port Tanımı:”></asp:Label>
<asp:TextBox ID=”website_porttanimi” runat=”server”></asp:TextBox><br />
<asp:Button ID=”Button1″ runat=”server” Text=”Yeni Web Sitemi Oluştur” />

Şimdi Default.aspx sayfamızın arayüzünü yaratmış bulunmaktayız fakat arkada çalışan yani sayfamızın codebehind tarafına gelecek olur isek. Eklemiş olduğumuz referans lar ile birlikte sayfamızın codebehing bölümüne onları import edip sağlıklı bir şekilde çalıştırmalıyız.

Imports System.Web
Imports System.Web.UI
Imports System.Web.HttpUtility
Imports System.IO
Imports System.IO.File
Imports System.DirectoryServices
Imports System.Management
Imports System.Management.ObjectGetOptions
Imports System.Text

Sayfamızın default.aspx.vb yani codebehind bölümünün en üstüne eklediğimiz bu referanslar işlemlerimiz için bize büyük kolaylık sağlayacaktır ki framework’umuzun compile eder iken sağlıklı bir şekilde yürütmesine de yardımcı olacaktır. Aksi takdir de bu referansları codebehind kısmına eklemez iseniz bu çalışmayı yapamazsınız. Şimdi gelelim Button1 objemizin Event ‘ı olan Click Event’ına ekleyeceğimiz kodlara. Elbette ki burada bir function eklemiş bulunmaktayız ve bu function ‘ı Button1 Click Event’ımızın bitişinden hemen sonraya yazacağız ki bu function sürekli olarak kullanılabilsin.

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim servers, site_ad, site_yol, site_tanimlar_ip, site_tanimlar_port, site_tanimlar_domain, site_tanimlar

servers = sunucu_adresi.Text
site_ad = website_adi.Text
site_tanimlar_ip = website_ipadresi.Text
site_tanimlar_port = website_porttanimi.Text
site_tanimlar_domain = website_adi.Text
site_tanimlar = site_tanimlar_ip & “:” & site_tanimlar_port & “:” & site_tanimlar_domain
site_yol = “c:\websiteler\” & site_tanimlar_domain & “”

‘Yaratılan web sitemizin kullanacagi olan klasörümüzü yaratıyoruz.

Directory.CreateDirectory(“e:\websiteler\” & site_tanimlar_domain & “”)

a = CreateWebsite(servers, site_ad, site_tanimlar, site_yol)
On Error Resume Next

Dim WebSiteID, objWebSite

WebSiteID = a
objWebSite = GetObject(“IIS://localhost/W3SVC/” & WebSiteID)

objWebSite.Start()

Response.Write(“Başarılı bir şekilde web sitemiz oluşturulmuştur.”)

End Sub

‘CreateWebSite Function

Public Shared Function CreateWebsite(ByVal webserver As String, ByVal serverComment As String, ByVal serverBindings As String, ByVal homeDirectory As String) As Integer

Dim w3svc As DirectoryEntry
w3svc = New DirectoryEntry(“IIS://localhost/w3svc”)

‘Create a website object array
Dim newsite() As Object
newsite = New Object() {serverComment, New Object() {serverBindings}, homeDirectory}

‘invoke IIsWebService.CreateNewSite
Dim websiteId As Object
websiteId = w3svc.Invoke(“CreateNewSite”, newsite)

Return websiteId

End Function

Bu bölüme kadar websitemiz sorunsuz yaratılacaktır fakat ufak bir nokta vardır ki o da AspDotNet ‘in izin seviyesidir. Bu izin seviyesini ayarlamak için web.config dosyamızda değişiklik yapmak zorundayızdır ki bu o anda ki kullanacağınız olan Windows User ‘ın isim ve şifresini içermektedir.

Bunun için ekleyeceğiniz kod:

<identity impersonate=”true” userName=”alperdotnet” password=”password”/>

Bu kodumuz direk olarak <system.web> altına eklenmelidir. Eklendikten sonra bu yapmış olduğumuz AspDotNet website projemiz sorunsuz çalışacaktır.

Alper TAYFUN

Reklamlar

Yorum Yapın »

Henüz yorum yapılmamış.

RSS feed for comments on this post. TrackBack URI

Bir Yanıt Bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

WordPress.com'da Blog Oluşturun.

%d blogcu bunu beğendi: