2009-05-16 17 views
16

Birden çok alt etki alanıyla bir asp.net sitesi geliştirmeye çalışıyorum. Genel olarak web siteleri ve özellikle asp.net için yeni. Bununla birlikte, joker alt alanlarının dns girişleri ve web sunucusu yapılandırması kombinasyonuyla düzgün bir şekilde ayarlandığı görülüyor. Bu, geliştirme makinemde gerçekleşmeyecek. Bu nedenle el hosts dosyasını benim pencerelerinde girişleri takacağım:Bir geliştirme makinesinde alt alan adları nasıl test edilir? abc.localhost

127.0.0.1 localhost 
127.0.0.1 abc.localhost 
127.0.0.1 xyz.localhost 

Ancak, görülecek hiçbir alt etki yoktur Request.Url özelliği sorgulamak çalıştığınızda. Örneğin, tarayıcıda http://abc.localhost:1660/'a ulaşırsam 'dan http://localhost:1660/ alırım; abc az önce gitti mi ?!

Neden hosts dosyasının neden böyle çalıştığını bilmiyorum, ancak yerel web uygulamasında alt etki alanları almak için kullanabileceğim başka bir yöntem var mı? Hepinize teşekkür ederim.

Tam bir iis sunucusu yerine yalnızca yerleşik ASP.NET geliştirme sunucusunu kullandığımı unutmayın. (Bu hafta sonu tam bir IIS'ye erişemiyorum, ancak bunun yardımcı olup olmayacağını öğrenmek istiyorum.)

+0

Bunun, yerleşik web sunucusunu kullanmanın bir faktörü olabileceğini düşünüyorum. Bunun genel IIS sunucusunda olacağına inanmıyorum. (Eğer XP'yi çalıştırıyorsanız, sizde var, sadece web sitenizi sanal bir uygulama olarak kuruyorsunuz). –

cevap

9

"Request.Headers [" HOST "]" ile istenilen etki alanını Subdomain ile birlikte alabilirsiniz. Geçerli isteğin Subdomain değerini döndüren basit bir yöntem. Bu yöntem aynı zamanda, gerçek web gibi alan adından sonra ".COM", ".NET" vb. Olduğunu varsayar. Yani içerecek şekilde HOSTS dosyasını değiştirmek için "localhost.com", "abc.localhost.com",

public string subdomain() 
{ 
    string host = Request.Headers["HOST"]; 
    if (!string.IsNullOrEmpty(host)) 
    { 
     var parts = host.Split('.'); 
     if (parts.Length > 2) 
     { 
      return parts[0]; 
     } 
    } 
    return string.Empty; 
} 
Burada bu çok şey üzerinde arama ve oldu

aslında ne bir makale vb isteyeceksiniz bana bu anlamaya yardımcı oldu: Windows 7 kullanıyorum https://web.archive.org/web/20090813174916/http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx

9

Başlıkları bilmiyorum, ancak kullandığım az bilinen bir numara 127. * adreslerinin tamamı sadece 127.0.0.1 değil, localhost adresleridir. 127.0.0.1 bağlantı noktası 80'i dinleyen bir sunucuyu ve 127.0.0.2 bağlantı noktası 80'i dinleyen başka bir web sunucusu örneğini çalıştırabilirsiniz. Böylece 127.0.0.1 adında localhost, 127.0.0.2 adı abc.localhost (veya abc.mydomain) olabilir. .com gerçek yerel URL'lerinizi yerel web sunucunuza karşı test edebilirsiniz), vb.

+2

Harika bir ipucu. hiç bilemez 127. * tüm localhost idi .. cool – ppumkin

9

, 7.5, VS 2008, SQL server 2005

ben localhost vb aşağıdaki satırı koyarak satın başarıyla alt alan simüle başardı/IIS ana bilgisayarları

127.0.0.2 myapp.localhost.com 
012 Ben bağlamaları bölümüne aşağıdaki değişiklikler ile yeni bir web sitesi kurmak IIS içinde

ve:

Hostname = myapp.localhost.com 
IP address = 127.0.0.2 

Ben de yeni bir uygulama havuzu oluşturulur ancak gerekli değildir. İstekler üzerinde çalışmak için kullanılan kullanıcı kimliğini değiştirmeniz gerekebilir. Varsayılan IIS kullanıcısıyla SQL bağlantı izni hatalarım vardı.

IIS>Application Pools>>Right Click on your pool>Advanced Settings>Identity = LocalSystem 
İlgili konular