2015-07-31 1 views
0

Учитывая следующие настройки:IIS 7.0 (IIS Express) Настройка

Website: "Web" 
Modules: Web/Module1, Web/Module2/, ... 
URL: http://web 

у нас есть бизнес-требование, чтобы перейти от

http://web

в

http://web/Snapshot1

http://web/Snapshot2

...

http://web/Snapshotn

мне интересно, если есть простой способ идти об этом, с простой модификацией routconfig или аналогичной (пожалуйста, обратите внимание, что будет совершенно новая копия «паутина» и "модули" для моментального снимка.

Я попытался установить «проект URL» в «http://Web/Snapshot1» и добавить запись RouteConfig.cs для «Snapshot1»

routes.MapRoute(
       name: "Snapshot1", 
       url: "Snapshot1/{controller}/{action}/{id}", 
       defaults: new { controller = "home", action = "Index", id = UrlParameter.Optional } 

Это сбросит все JS, таблицы стилей и изображения, относительные пути; поэтому я не уверен, что это правильный подход. Также, чтобы сделать жизнь более интересной, из-за политики компании, у нас нет прав администратора (в том числе dev-боксы); поэтому играть с IIS не вариант (если вы не знаете, каким образом?); я ограничен IIS Express

Update

Согласно предложению, я обновил свой IIS Express конфигурации; К сожалению, это такая настройка приводит к URL переписывания, где имя снимка удаляется

<site name="Web-Site" id="1"> 
     <application path="/" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="H:\Data\My Documents\My Web Sites\Web-Site" /> 
     </application> 
     <application path="/snapshot1" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\abc\def\Web" /> 
     </application> 
     <application path="/snapshot1/WebShell" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\abc\def\Web\Modules\Shared\WebShell" /> 
     </application> 
     <bindings> 
      <binding protocol="http" bindingInformation="*:2222:localhost" /> 
     </bindings> 
    </site> 
+4

Почему бы не создать каждый «Снимок» как приложение веб-сайта? Вы также можете дать каждому свой собственный пул приложений. Маршруты автоматически подберут виртуальный путь - вам не нужно будет настраивать его как часть маршрутов. – crush

+0

Мне бы тоже понравилось ... Я не уверен, как я могу это сделать в IIS Express, хотя :(Если бы у меня был доступ к IIS ... знаете ли вы, как я могу настроить webapps в iis express? – DotNet98

+0

You может получить доступ к конфигурационному файлу IIS Express в папке «C: \ users \ {имя_пользователя] \ Documents \ IISExpress \ config \ applicationhost.config'. Оттуда найдите информацию о своем веб-сайте и найдите параметры конфигурации.Я думаю, что это похоже на ' – crush

ответ

0

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

http://website/Prod 
http://website/snapshot1 
http://website/snapshot2 
http://website/dev 
http://website/staging 

под каждой из вышеперечисленных я бы различные модули развернуты (однако, корень URL не «Сайт», а это «Сайт/{SomeName}/модулей»;

Так что-то вроде:

http://website/Prod/Members 
http://website/Prod/Loans 
http://website/Prod/Blogs 
http://website/Prod/Documents 
http://website/Prod/Media 

http://website/snapshot1/Members 
http://website/snapshot1/Loans 
http://website/snapshot1/Documents 
http://website/snapshot1/Media 

http://website/snapshot2/Members 
http://website/snapshot2/Loans 
http://website/snapshot2/Media 

В конфигурационном файле IIS - Express (applicationhost.config) я создал следующее и все магически случилось с работой:

<site name="website-name-or-whatever-the-heck-you-want-it-2b" id="2"> 
     <application path="/" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="path to some snapshot selector" /> 
     </application> 
     <application path="/snapshot1/Members" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\...\path to members" /> 
     </application> 
     <application path="/snapshot1/Loans" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\...\path to Loans" /> 
     </application> 
     <application path="/snapshot1/Blogs" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\...\path to Blogs" /> 
     </application> 
     <application path="/snapshot1/Documents" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="c:\...\path to Documents" /> 
     </application> 
     <application path="/snapshot1/Media" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath=Media /> 
     </application> 
     <bindings> 
      <binding protocol="http" bindingInformation="*:5260:localhost" /> 
     </bindings> 
    </site>