2016-05-03 8 views
3

Ich habe mehrere APIs, die denselben Port (8888) verwenden. Diese APIs sind Teil verschiedener Lösungen.IIS Express - Visual Studio - Mehrere Sites auf demselben Port ausführen

http://localhost:8888/api1

http://localhost:8888/api2

....

Wenn ich eine der APIs in Visual Studio 2013 (Hit F5) ausführen, iis Express startet und alle APIs ausgeführt werden. Dies geschieht, obwohl die APIs Teil einer anderen Lösung sind. Ich kann sie sehen, wenn ich auf das iis Express-Symbol unter Sites anzeigen klicke.

Ich habe VS 2015 installiert und wenn ich eine API in Visual Studio ausführen, werden die anderen APIs nicht ausgeführt. Ich kann nicht einmal die anderen APIs in der anderen Lösung führen, da ich:

unable to launch iis express.. port is in use 

wie kann ich die anderen APIs bekommen zu laufen, wenn ich eine API laufen? Ich muss das Verhalten nachahmen, das in VS 2013 in VS 2015 existiert.

Danke.

+0

eine Antwort stark hier geschätzt. Es ist eine allgemein gute Frage. – bonitzenator

Antwort

0

Ich löste dies für ein ähnliches Szenario, obwohl ich in meinem Fall gewählt habe, IISExpress über die Befehlszeile auszuführen und die Konfigurationsdatei als Argument übergeben.

  1. Bearbeiten Sie die Datei applicationhost.config. Ich fand mein über den Ordnerpfad% USERPROFILE% \ Documents \ IISExpress \ config
  2. Suchen Sie den <Websites> Abschnitt (unter < system.applicationHost gefunden >)

Als Beispiel, ich habe zwei Anwendungen, die ich wollen gleichzeitig auf Port 80 auf localhost Host:

<sites> 
    <site name="test" id="1" serverAutoStart="true"> 
     <application path="/" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="C:\codepath" /> 
     </application> 
     <application path="/api1" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="C:\codepath\api1" /> 
     </application> 
     <application path="/api2" applicationPool="Clr4IntegratedAppPool"> 
      <virtualDirectory path="/" physicalPath="C:\codepath\api2" /> 
     </application> 
     <bindings> 
      <binding protocol="http" bindingInformation=":80:localhost" /> 
     </bindings> 
    </site> 
<!-- other settings relevant to your installation of IISExpress--> 
</sites> 

Die wichtigsten Dinge, die ich tun musste, diese Funktion erhalten wurde:

  1. Stellen Sie sicher, applicationhost.config ist wohlgeformte XML-
  2. Stellen Sie sicher, den Stammpfad zusätzlich zu den beiden api Anwendungspfade
  3. Serverauto angeben = „true“ die Seite sorgt dafür, beginnt, wenn IISExpress
  4. genannt wird
  5. Alle die Anwendungen teilen sich die gleiche application
  6. ich nur an einem Standort definiert und in allen meinen Anwendungen als Teilwege gebündelt würden
Verwandte Themen