2012-03-05 4 views
1

Я создал новое приложение для веб-форм в визуальной студии 2010 только с двумя страницами Default.aspx и About.aspx. что я хочу, так это то, что когда я отлаживаю приложение на сервере разработки визуальной студии и вхожу в http://company1.localhost:1023, он должен просто отображать страницу по умолчанию с сообщением This is default page for company1. Как я могу это сделать, просто играя с маршрутизацией url, а не с настройками в IIS
Примечание: Я понимаю, что многопользовательская аренда - большое слово и не должна использоваться для такого простого сценария, но мои требования просты. я бы просто запускал один и тот же экземпляр приложения для каждой компании без каких-либо расширений. Этот вопрос также может быть сформулирован так же, как я могу создать субдомены программным путем.Многопользовательская деятельность в веб-формах asp.net

ответ

2

Необходимо правильно настроить IIS (и, возможно, DNS) для этой работы. Например, все ваши поддомены должны обрабатываться указанным веб-сайтом в IIS. Как правило, вы можете настроить IIS для обработки всех заголовков хостов, если есть только один веб-сайт, но в случае нескольких веб-сайтов IIS обычно настроен так, чтобы отличаться заголовком хоста. Поэтому правильная настройка этой конфигурации - важная часть для вас.

Как только вы достигнете правильного веб-сайта, обработка ресурсов будет выполнена мета-базой IIS. Таким образом, в этом случае он перенаправляет настроенный ресурс по умолчанию для сайта. Если имя ресурса присутствует, расширение (htm, aspx) будет определять обработку. Расширения Aspx будут обрабатываться ASP.NET, а затем все, что вам нужно сделать, - это посмотреть текущий заголовок узла и принять соответствующее решение. Например,

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (request.Url.HostNameType == UriHostNameType.Dns) 
    { 
     var hostParts = Request.Url.Host.Split('.'); 
     // you may validate if sub-domain name is present or not 
     lblMessage.Text = "This is default page for " + hostParts[0]; 
    } 
} 
+0

Я не думаю, что это ему помогает. Он явно требует решения не использовать IIS. Я не говорю, что мой ответ, конечно, лучше –

+1

@CrabBucket, я думаю, вы пропустили это. Какие потребности в OP необходимо настроить на уровне веб-сервера - код ASP.NET, включая маршрутизацию (или любой код уровня приложения/ISAPI), вступает в игру только тогда, когда запрос может успешно достичь времени выполнения ASP.NET (для которого требуется конфигурация IIS) , – VinayC

+0

Я пропустил точку. Это разные значения по умолчанию для разных хостов. Я думал, что должно быть что-то еще. Спасибо за это - я удаляю свой ответ –