2016-03-29 86 views
2

我在IISExpress下從命令行運行我的ASP.NET5時遇到了問題。從命令行在IISExpress中運行ASP.NET

我目前的命令行設置(感謝this answer)看起來像這樣

iisexpress.exe /config:"[project_dir].vs\config\applicationhost.config」 /網站: 「Web用戶界面」/應用程序池:「Clr4IntegratedAppPool」

請注意,從VS2015內運行項目工作正常。

當我運行上面的命令時,IISExpress啓動,它甚至發現它應該運行正確的端口。主要問題是每個請求返回502.3。

綜觀IISExpress\TraceLogFiles我看到這個錯誤的內容

模塊名:httpPlatformHandler

通知:EXECUTE_REQUEST_HANDLER

的HTTPStatus:502

HttpReason:錯誤的網關

HttpSubStatus :3

ErrorCode:服務器當前被禁用。 (0x8007053d)

這是什麼造成的?爲什麼我不能讓它運行!?

+0

您是否安裝了httpPlatformHandler 1.2?如果你這樣做 - 你可以顯示你的web.config文件嗎? – Pawel

回答

0

的對ApplicationHost.config很可能指向你的項目的根目錄下,並在該目錄中,該項目的默認web.config文件中有一行看起來像下面這樣:

<aspNetCore processPath="%LAUNCHER_PATH%" 
      arguments="%LAUNCHER_ARGS%" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".\logs\stdout" 
      forwardWindowsAuthToken="false"/> 

的Visual Studio (和dotnet publish命令)將在F5啓動過程中用啓動器變量替換ASP.NET Core應用程序的實際路徑;我不確定這個新的web.config文件存儲在哪裏。

這就是說,我可以通過以下步驟獲得IIS Express的命令行調用,用於我的ASP.NET Core應用程序。

  1. 運行dotnet publish
  2. 將application.config文件從.vs目錄複製到發佈輸出目錄。
  3. 修改我的應用程序的新applicationhost.config中的路徑以引用發佈輸出目錄。
  4. 運行iisexpress.exe並指向新的applicationhost.config文件。