Question

とおる8329 on Wed, 04 Jul 2018 09:34:57


動作実績のあるASP.NET Core アプリケーションを新規に環境を作って実行させようとしています。
IISにアプリケーションを展開して、URLを指定してIEから呼び出したところ
KESTRELのプロセスは立ち上がって待ち受けできているようなのですが、ASP.NET
COREのモジュールが要求を転送していないように見えます。

stdoutlog:
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using 'C:\Windows\system32\config\systemprofile\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Production
Content root path: D:\(Application Path) Now listening on: http://localhost:23680 Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://(AppHostName)/api/...  
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 549.7702ms 404 application/json; charset=utf-8

うまく動作する場合、Request startingの(AppHostName)のログ出力が
localhost:23680として出力されるのではないかと考えています。

IISの動いているサーバ上で、コマンドプロンプトから

dotnet.exe .\(Application).dll

を実行するとKESTRELが5000ポートで立ち上がり、同じくサーバ上のIEから
http://localhost:5000/api/..
で呼び出すとアプリケーションが正常に動作することは確認しました。

環境は
Windows Server 2016 Starndard
 役割の追加からIISをインストール
 Microsoft Visual C++ 2015 再頒布可能パッケージ
 .NET Core ホスティング バンドル
をインストールしました。
一応、ホスティングバンドルは修復インストールで入れ直してみましたが
特に変わらずです。

動作実績のあるアプリケーションなので、恐らく構築した環境の設定
の問題でうまく動いていないと思われるのですが、どこら辺から見直せば
よいものでしょうか?
ASP.Net CoreのモジュールからKESTRELへの転送は自動的にされるもので
特に設定とかはないのか調べても情報が見つかりませんでした。

それでは、よろしくお願いいたします。

Replies

ともふみ on Fri, 06 Jul 2018 10:33:46


申し訳ありません。単純な設定ミスでした。

アプリケーション内で設定されていたURLパスがapiから始まっていたのに、アプリケーションをIISマネージャで追加する際にエイリアスをapiとしてしまったためapi/api/としないと404になってしまうというものでした。