2015-09-29 21 views
17

Mam 2 projekty, Web API i projekt klienta angularJS (który został utworzony przy użyciu szablonu Pusty projekt). Mój klient poprosił mnie, żebym wymusił SSL, więc dla Web API utworzyłem filterAttribute. W każdym razie zmieniłem oba projekty na SSL włączone. Problem polega na tym, że oba projekty pokazują, że ich adres URL SSL to http://localhost:44300, co oczywiście nie zadziała.Visual Studio 2015/IISExpress zmiana portu SSL

Postanowiłem więc zmienić plik applicationhost.config. W przypadku programu Visual Studio 2015 wygląda na to, że znajduje się on w folderze .vs. Kiedy go tam zmienię, jeśli otworzę projekt, nadpisze go i odsyła z powrotem do .

Próbowałem utworzyć katalog wirtualny (we właściwościach mojego API) i próbowałem nadpisać główny adres URL aplikacji. Żaden nie zadziałał.

Czy ktoś wie, w jaki sposób mogę użyć innego portu SSL?

+0

Możesz pobrać aplikację Jexus Manager dla IIS Express, aby wprowadzić zmiany. Plik w .vs nie jest plikiem do zmiany. –

+0

Dam ci ten strzał – r3plica

+0

Na wypadek, gdyby ktoś wylądował tutaj w poszukiwaniu projektów AspNet 5, regularne porty SSL używane przez Visual Studio 2015 (Update 1) są hostowane dla każdego projektu w. \ Properties \ launchSettings.json plik. – Ghidello

Odpowiedz

34

Miałem taką samą sytuację z 2 projektami. Visual Studio 2015 poprawnie przypisał różne numery portów URL dla HTTP, ale zmapował oba projekty do 44300 dla HTTPS.

AFAIK the applicationhost.config w .vs \ config wydaje się definiować środowisko IIS Express i informować IIS Express o zachowaniu się, gdy zostanie wywołany. Ta informacja nie przekazuje opinii do programu Visual Studio.

Visual Studio wydaje się opierać na ustawieniach w pliku .csproj. Jest to wartość portu SSL widoczna podczas przeglądania właściwości projektu w VS.

byłem w stanie rozwikłać dwóch projektów poprzez dostosowanie zarówno:

  1. Zmiana wartości IISExpressSSLPort w pliku .csproj mojego projektu
  2. Musiałem także zapewnić, że https wiązania zawarte w applicationhost.config

.csproj

<UseIISExpress>true</UseIISExpress> 
<IISExpressSSLPort>44301</IISExpressSSLPort> 

applicationHost.config

<bindings> 
    <binding protocol="http" bindingInformation="*:58001:localhost" /> 
    <binding protocol="https" bindingInformation="*:44301:localhost" /> 
</bindings> 

Aktualizacja:

Plik .csproj.user posiada konfigurację portu SSL, aby zapobiec nadpisaniu Numer portu SSL w pliku applicationhost.config, .csproj.user powinien być również zaktualizowany.

<UseIISExpress>true</UseIISExpress> 
<IISExpressSSLPort>44301</IISExpressSSLPort> 
+1

Znalazłem, że modyfikowanie pliku .csproj było wystarczające. Wydaje się, że VS przepisuje plik applicationhost.config przy użyciu bieżącej konfiguracji mojego projektu. – CamHart

+0

Dam test, ponieważ nigdy nie znalazłem rozwiązania :) – r3plica

+1

Nie ma csproj w projekcie strony internetowej ... – Dani

6

Dla Asp.Net podstawowej patrz "/Properties/launchSettings.json" pliku.

2

Dla vs2015, znalazłem plik applicationhost.config z poprawną zawartością w folderze .vs \ w moim rozwiązaniu.

+0

W przypadku, gdy ktoś inny ma to isuse, również znalazłem tam plik, ale zmiany w nim są ignorowane. Jeśli zmienię port w , następnym razem mam nadzieję, że projekt utworzy całkiem nowy blok i zignoruje wszystko, co zrobiłem. – chrismay

Powiązane problemy