6

ho creato due progetti web e API fondamentali ASPNET in un'unica soluzione utilizzando VS2015ASP.NET Nucleo directory virtuale in IIS espresso

src 
| 
|-app.web 
| |-localhost:29999/ 
| |-startup.cs 
| 
|-app.api 
    |-localhost:29999/api/ 
    |-startup.cs (app.Map("/api", api => { /*configs and route*/ });) 

e modificato .vs\config\applicationhost.config di file come di seguito per utilizzare directory virtuale

<site name="ThreeCON.Web" id="2"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\proj\src\app.web\wwwroot" /> 
     <virtualDirectory path="/api" physicalPath="C:\proj\src\app.api\wwwroot" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:29999:localhost" /> 
    </bindings> 
</site> 

quando provo ad accedere all'URL localhost:29999/apidurante il debug del, sto ricevendo l'errore 404 not found (dove localhost:29999/ funziona correttamente)

Tuttavia, quando distribuisco lo stesso al server di sviluppo creando la directory virtuale in IIS, , la sua correzione funziona. così come posso risolvere questo per funzionare con IIS Express

risposta

1

Il problema qui è che la directory virtuale non viene riconosciuta in quanto è Kestrel che gestisce questo e non in realtà IIS Express. Fondamentalmente, Kestrel non sa che la Directory virtuale esiste, quindi non può servire come tale.

Il answer here e il successivo collegamento del post sul blog fornito nella risposta mi hanno portato a questa conclusione e per risolvere questo problema che anch'io ho incontrato.

Problemi correlati