簡體   English   中英

承載 ASP 核心 API 的 IIS

[英]IIS hosting an ASP Core API

得到了下面的問題與Web API我一直在工作,我的問題就在於內我應該如何在Web API與IIS(在Windows Server 2012 R2),考慮到我一直在關注這個文件的事實配置為工作方向我仍然收到“無法顯示此頁面”瀏覽器錯誤:

Windows Server 托管在 Azure 上。

我什至添加了與 IIS 身份驗證相關的這部分(認為這可能不會導致我的問題),添加/刪除它沒有任何影響。

 public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddOptions();

        services.Configure<IISOptions>(options =>
        {
            options.ForwardWindowsAuthentication = false;
        });
     }

就像我創建publish文件夾的方式一樣,我進行了如下操作:

dotnet publish

這導致以下文件夾結構

  • 參考
  • 運行時
  • 許多 .dll(對各種程序集的引用,例如 aspnetcore.mvc、httpclient 等)
  • 網頁配置
  • mywebAPI.deps(帶有依賴項的 json 文件)
  • 我的webAPI.dll
  • mywebAPI.pdb
  • appsettings.JSON

根據目錄結構,我確實錯過了 wwwroot 和 Views,因為我在project.json隱式提到了它們,但我不需要它們,因為我有一個 web api 而不是 web 表單應用程序。

"publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  }

在 IIS 上配置步驟 在我放置發布結果的主驅動器上創建了一個文件夾。 轉到 IIS 管理器並添加一個新網站轉到應用程序池並將 .NET CLR 版本設置為“無托管代碼”

在此處輸入圖片說明

啟動應用程序讓我直接進入這個瀏覽器錯誤 - 此頁面無法顯示

從 CMD dotnet mywebapi.dll WORKS 運行...我已經用郵遞員測試過它(在 Windows 服務器上有郵遞員)。

在此處輸入圖片說明

您需要更多信息。

.\\logs\\stdout啟用並檢查應用程序日志

<system.webServer>
    <handlers>
      <add 
         name="aspNetCore" 
         path="*" 
         verb="*" 
         modules="AspNetCoreModule" 
         resourceType="Unspecified"/>
    </handlers>
    <aspNetCore 
         processPath=".\MyApp.exe" 
         arguments="%LAUNCHER_ARGS%" 
         stdoutLogEnabled="false"                  <--- enable
         stdoutLogFile=".\logs\stdout" />          <--- set path
  </system.webServer>
</configuration>

檢查 IIS 日志(您可能不必先啟用它們)。 事件查看器 > Windows 日志 > 應用程序。 要向下鑽取,您可以按事件級別等過濾當前日志...。

IIS 應用程序日志

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM