6

私はIIS ExpressのASP.NETコアの仮想ディレクトリ

<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> 

をVS2015

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

を使用して一つの解決策の下に2つのASPNETコアウェブとAPIプロジェクトを作成し、仮想ディレクトリを使用するには、以下のような.vs\config\applicationhost.configファイルを修正のデバッグ中にURL localhost:29999/apiにアクセスしようとすると、404 not foundエラーが発生します(localhost:29999/は問題ありません)

しかし、IISで仮想ディレクトリを作成してdevサーバーに同じものをデプロイすると、は正常に動作します。。この問題を解決するにはどうすればいいですか?IIS Express

答えて

1

ここで問題となるのは、実際にはIIS Expressではなく、これを処理しているKestrelが仮想ディレクトリを認識していないことです。基本的に、Kestrelは仮想ディレクトリが存在することを知らないので、それを提供することはできません。

answer hereとその後のブログ投稿のリンクから、私はこの結論に至り、この問題を解決しました。

関連する問題