Как обслуживать два ASP.Net Приложения MVC в одном экземпляре IIS Express?

#asp.net-mvc #iis-express

#asp.net-mvc #iis-express

Вопрос:

У меня есть два ASP.Net Приложения MVC, скажем, Site1 и Site2.

На данный момент я могу успешно получить доступ к сайту 1, посетив http://localhost/

Вот мой файл applicationhost.config IIS Express:

 <sites>
   <site name="Site1" id="1" serverAutoStart="true">
       <application path="/">
           <virtualDirectory path="/" physicalPath="%IIS_USER_HOME%wwwrootSite1" />
       </application>
       <bindings>
           <binding protocol="http" bindingInformation=":80:localhost" />
           <binding protocol="http" bindingInformation=":80:10.49.0.137" />
       </bindings>
   </site>
   <siteDefaults>
       <logFile logFormat="W3C" directory="%IIS_USER_HOME%logs" />
       <traceFailedRequestsLogging directory="%IIS_USER_HOME%logstracelogfiles" enabled="false" maxLogFileSizeKB="1024" />
   </siteDefaults>
   <applicationDefaults applicationPool="IISExpressAppPool" />
   <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
  

Что я хочу сейчас, так это:

  • Получите доступ к Сайту1 на http://localhost/Site1
  • Поместите Site2 на %IIS_USER_HOME%wwwrootSite2
  • Получите доступ к Сайту2 на http.//localhost/Site2

Как я должен изменить приведенный выше applicationhost.config для достижения того, чего я хочу?

Спасибо.

Ответ №1:

измените свой applicationhost.config, как показано ниже, и перезапустите IIS Express.

 <sites>    
  <site name="Site1" id="1" serverAutoStart="true">
   <application path="/">            
      <virtualDirectory path="/" physicalPath="%IIS_USER_HOME%wwwroot" />
   </application>        
   <application path="/site1">            
      <virtualDirectory path="/" physicalPath="%IIS_USER_HOME%wwwrootSite1" />
   </application>        
   <application path="/site2">            
      <virtualDirectory path="/" physicalPath="%IIS_USER_HOME%wwwrootSite2" />
   </application>        
   <bindings>            
     <binding protocol="http" bindingInformation=":80:localhost" />            
     <binding protocol="http" bindingInformation=":80:10.49.0.137" />        
   </bindings>    
  </site>    
  <siteDefaults>        
    <logFile logFormat="W3C" directory="%IIS_USER_HOME%logs" />        
    <traceFailedRequestsLogging directory="%IIS_USER_HOME%logstracelogfiles" enabled="false" maxLogFileSizeKB="1024" />    
  </siteDefaults>    
  <applicationDefaults applicationPool="IISExpressAppPool" />    
  <virtualDirectoryDefaults allowSubDirConfig="true" /> 
</sites>
  

Ответ №2:

Проверьте эту замечательную запись.

С IISExpress работать с SSL во время разработки стало проще — Скотт Хансельман

Выполните команду netsh после добавления привязки applicationHost.config.

 netsh http add urlacl url=http://10.49.0.137:80/ user=everyone