2015-05-14 8 views
10

Ho un'applicazione multi-tenant a cui si accede in produzione come customer.ourdomain.com. Per lo sviluppo locale con IIS, utilizziamo un dominio jolly personalizzato, company-localdev.com.Nome host con caratteri jolly in IIS Express + VS 2015

Con IIS, questo funziona senza alcuna configurazione particolare. IIS Express, d'altra parte, si lega solo a localhost.

Abbiamo un progetto di migrazione in corso su ASP.NET 5 e vorremmo usare IIS Express per un'esperienza di sviluppo più semplice.

È possibile che IIS Express ascolti *.company-localdev.com:1234? Punti bonus se questo può essere automatizzato in modo che uno sviluppatore possa farlo funzionare semplicemente aprendo la soluzione in IIS.

risposta

6

Havent provato con vs2015, ma questo funziona con IIS esprimono in vs 2012.

andare nella cartella documenti. Apri IISExpress/config.applicationhost.config.

cerca il tag xml 'sites' e trova il tuo sito. È possibile modificare le associazioni di sito da qui in questo modo:

<bindings> 
    <binding protocol="http" bindingInformation="*:1234:company-localdev.com" /> 
</bindings> 

Debug funziona solo per me, se corro Visual Studio come amministratore.

+0

"Esegui come amministratore" mi ha preso solo ora. Ho fatto una nuova installazione di sistema e ho dimenticato di configurare le scorciatoie di Visual Studio per l'esecuzione in modalità amministratore. Ho pensato che fosse un nuovo problema in VS2015 RC! – jklemmack

16

In ASP.NET 5/vNext, il file di configurazione si trova in

~ProjectFolder~/.vs/config/applicationhost.config 

Da lì, è possibile aggiungere nuove associazioni come rdans spiegato.

5

Ok ho ottenuto lavorando sulla mia macchina locale, qui ci sono tutti i passi che ho dovuto prendere:

  1. Vai a {YourProjectFolder}\.vs\config e modificare il file applicationhost.config:

    <site name="MySite" id="2"> 
         <application path="/" applicationPool="Clr4IntegratedAppPool"> 
          <virtualDirectory path="/" physicalPath="{MyProjectFolderPath}" /> 
         </application> 
         <bindings> 
          <binding protocol="http" bindingInformation="*:49861:localhost" /> 
          <binding protocol="http" bindingInformation="*:80:example.com" /> 
          <!-- for subdomain testing only --> 
          <binding protocol="http" bindingInformation="*:80:sub1.example.com" /> 
          <binding protocol="http" bindingInformation="*:80:sub2.example.com" /> 
         </bindings> 
        </site> 
    
  2. Esegui il blocco note come amministratore e vai a C:\Windows\System32\drivers\etc per aprire il file hosts e modificarlo in questo modo

    127.0.0.1 example.com
    127.0.0.1 sub1.example.com
    127.0.0.1 sub2.example.com

  3. Aggiungere la prenotazione URL eseguendo cmd.exe come amministratore e digitare al prompt netsh http (per ottenere il netsh http> pronta, è necessario digitare netsh seguito da Invio, quindi http seguito da Enter):

    add urlacl url=http://example.com:80/ user=everyone

    add urlacl url=http://sub1.example.com:80/ user=everyone

    add urlacl url=http://sub2.example.com:80/ user=everyone

Tenete a mente che la parola everyone dipende dalla lingua del sistema operativo Windows.Su un sistema operativo francese, user=everyone deve essere sostituito da user="Tout le monde", su un sistema operativo tedesco dovrebbe essere user=jeder, in spagnolo user=todos ecc ... si ottiene l'idea.

  1. Dopodiché dovresti essere in grado di avviare il debug e accedere al dominio che hai configurato per vedere il tuo sito web.

Spero che questo aiuti.