Как разместить несколько веб-приложений, используя только 2 виртуальных каталога - PullRequest
1 голос
/ 26 октября 2008

мой общий хостинг позволяет мне создавать только 2 виртуальных каталога. и я хочу разместить несколько веб-приложений ... скажем, asp.net mvc блог, форум, личный сайт и т. д ...

нет ли другого способа сделать это? я не могу просто FTP-папку блога в один из моих виртуальных каталогов, а затем получить к нему доступ в Интернете ??

Ответы [ 2 ]

2 голосов
/ 28 октября 2008

Для веб-приложений ASP.NET обычно каждое из них находится в своем собственном виртуальном каталоге, который служит отправной точкой приложения.

Технически, вы могли бы "привязать" два приложения к одной и той же начальной точке приложения одним из двух способов:

  1. Поместите все файлы для каждого приложения в один и тот же каталог (и соответствующие подкаталоги)

Если у вас нет ЛЮБЫХ файлов, которые перекрываются, вы можете обойтись без этого. Конечно, вполне вероятно, что вы не будете использовать такие файлы, как страницы по умолчанию или индексные страницы и т. Д. И это все равно будет довольно грязно.

  1. Поместите все недвоичные файлы для каждого приложения в соответствующий подкаталог, а двоичные файлы - в главный виртуальный каталог \ bin.

Вы сможете сделать это только в том случае, если двоичные файлы каждого приложения не перекрываются по имени И нет конфликтов неоднозначности пространства имен между сборками (две разные сборки по имени файла, но с одним и тем же пространством имен). Последнее менее вероятно, если вы попытаетесь соединить два разных приложения.

Большая проблема, которую я вижу в последнем решении, заключается в том, что любые части приложения, использующие корневые ссылки приложения, будут повреждены. Когда некоторый код пытается разрешить ссылку на некоторый ресурс (например, изображение) на основе корневой ссылки приложения, такой как

~/images/logo.gif

~ преобразуется в виртуальный каталог, но не включает в себя дополнительный подкаталог (не виртуальная и не начальная точка приложения), в котором находится приложение. Так что вместо этого:

/vd1/app1/images/logo.gif

в итоге вы получите:

/vd1/images/logo.gif

Очевидно, это не сработает.

Итак ... вы не сломаете ни одно из приложений, если сможете поместить их в один и тот же виртуальный каталог, однако вам придется проверять конфликты файлов и тому подобное. Возможные конфликты пространства имен будут неизбежны без отдельных начальных точек приложения.

0 голосов
/ 26 октября 2008

Разве вы не можете просто поместить каждое приложение в отдельный подкаталог в любом из виртуальных каталогов. например если бы у вас было http://server.com/vd1,, вы могли бы разбить его на http://server.com/vd1/app1, http://server.com/vd1/app2, и т. д.

...