Я создал новое приложение для веб-форм в визуальной студии 2010 только с двумя страницами Default.aspx
и About.aspx
. что я хочу, так это то, что когда я отлаживаю приложение на сервере разработки визуальной студии и вхожу в http://company1.localhost:1023
, он должен просто отображать страницу по умолчанию с сообщением This is default page for company1
. Как я могу это сделать, просто играя с маршрутизацией url, а не с настройками в IIS
Примечание: Я понимаю, что многопользовательская аренда - большое слово и не должна использоваться для такого простого сценария, но мои требования просты. я бы просто запускал один и тот же экземпляр приложения для каждой компании без каких-либо расширений. Этот вопрос также может быть сформулирован так же, как я могу создать субдомены программным путем.Многопользовательская деятельность в веб-формах asp.net
ответ
Необходимо правильно настроить 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];
}
}
Я не думаю, что это ему помогает. Он явно требует решения не использовать IIS. Я не говорю, что мой ответ, конечно, лучше –
@CrabBucket, я думаю, вы пропустили это. Какие потребности в OP необходимо настроить на уровне веб-сервера - код ASP.NET, включая маршрутизацию (или любой код уровня приложения/ISAPI), вступает в игру только тогда, когда запрос может успешно достичь времени выполнения ASP.NET (для которого требуется конфигурация IIS) , – VinayC
Я пропустил точку. Это разные значения по умолчанию для разных хостов. Я думал, что должно быть что-то еще. Спасибо за это - я удаляю свой ответ –