2016-04-28 1 views
0

Aktueller Status: Ich habe in Visual Studio 2015 2 Web-Apps basierend auf ASP.net 4.5.2 und WebAPI erstellt. Eine Webanwendung fragt die REST-API der zweiten Webanwendung ab, die wiederum eine Verbindung mit einer anderen REST-API im Web herstellt.So richten Sie eine Web-App-Verbindung ein, damit ich sie lokal in IIS express und in der Auzure Cloud ausführen kann

Normalerweise teste ich die Web-Anwendungen lokal auf dem IIS Express-Server. Web-App kommuniziert man mit dem zweiten über HttpClient mit einem localhost als Host-Namen.

Ziel: Jetzt möchte ich diese beiden Web-Anwendungen zu Azure bereitstellen. Dort kann ich natürlich nicht localhost verwenden. Ich muss die IP-Adressen/Hostnamen verwenden, die von Visual Studio zugewiesen werden (ich bin mir nicht sicher, wie ich sie herausfinden soll, aber trotzdem). Aber wenn ich den Code ändere, um whatever IP address statt localhost zu verwenden, kann ich sie nicht lokal auf IIS Express ausführen und debuggen.

Aktuelle Frage: Wie kann ich Web App eine mit Web App zwei kommunizieren lassen, wenn in IIS Express und Azure Cloud ausgeführt wird? Wie kann ich das Problem mit dem Hostnamen beheben?

+0

können Sie Config-Transformationen verwenden http://johan.driessen.se/posts/Applying-MSBuild-Config-Transformations-to-any-config-file-without-using-any-Visual-Studio-extensions und https: //msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx beim Debuggen wird die Datei web.config überschrieben. Bei der Bereitstellung mit der Release-Konfiguration wird auch web.config überschrieben. –

Antwort

1

Ich benutze einfach die web.config

in Visual Studio für das Web-Projekt, wenn Sie auf Eigenschaften> Web> Server können Sie IIS Express und eine statische URL zB gesetzt: http://localhost:51137/

I Ich vermute, du hast das schon getan.

Jede App hat dann einen Verweis auf den anderen, ein AppSetting verwenden, die Sie

<add key="ApiBaseUrl" value="http://localhost:51137/" /> 

und diese Einstellung web.config hinzufügen, wird in der Azure AppSettings Konfiguration überschreibt, so dass es bei Live-Punkten.

<add key="ApiBaseUrl" value="https://myApp.azurewebsites.net/" /> 

Wann immer braucht WebApp1 zu nennen webapp2 es die URL von apiUrl + 'Foo/23' konstruieren kann, wo apiUrl = ConfigurationManager.AppSettings["ApiBaseUrl"];

Edit: Wenn Sie mit dem ‚neuen‘ Azure-Portal einloggen und dort an den Einstellungen suchen Sie nach Ihrer WebApp ist ein Blade für Anwendungseinstellungen. Der Abschnitt App-Einstellungen erlaubt Schlüssel/Wert-Einträge, die die veröffentlichten AppSettings überschreiben.

+0

Richtig, die statische URL ist bereits gesetzt (von VS gemacht, denke ich). Aber ich verstehe den Rest deiner Antwort nicht. Wo kann ich diese Referenz sehen? Wo kann ich die azurblaue URL festlegen? Wann wird dies überschrieben (während der Bereitstellung)? ... (Ich habe diese ApiBaseUrl nicht in meiner web.config) – Stephan