《ASP.NET Core 6框架揭祕》勘誤

  • P5第2段
    • 原文:由於創建的是一個針對 ASP.NET Core 的可執行控制檯應用,所以將 OutputType 和 TargetFramework 的屬性分別設置爲“Exe”和“net6.0”。
    • 改爲:由於創建的是一個針對 .NET 6的可執行控制檯應用,所以將 OutputType 和 TargetFramework 的屬性分別設置爲“Exe”和“net6.0”。
  • P7第2段
    • 原文:由於創建的是 ASP.NET Core 的應用程序,所以最終生成的程序集被保存在“\bin\Debug\net6.0\”目錄下。
    • 改爲:由於創建的是 .NET 6的應用程序,所以最終生成的程序集被保存在“\bin\Debug\net6.0\”目錄下。
  • P34第2段
    • 原文:爲了能夠使 API,我們爲 App2 添加“Dapr.AspNetCore”這個 NuGet 包的引用。將緩存相關的 3 個操作定義在 IResultCache 接口中。
    • 改爲:爲了能夠使 Dapr API,我們爲 App2 添加“Dapr.AspNetCore”這個 NuGet 包的引用。將緩存相關的 3 個操作定義在 IResultCache 接口中。
  • P47第3段
    • 原文:首先 ASP.NET Core MVC 框架在處理請求的過程中會根據路由解析生成參數,得到目標 Controller 的類型,然後自動創建對應的實例並指定對應的 Action 方法
    • 改爲:首先 ASP.NET Core MVC 框架在處理請求的過程中會根據路由解析生成參數,得到目標 Controller 的類型,然後自動創建對應的實例並執行對應的 Action 方法
  • P86第2段
    • 原文:提示實現類型並非‘App.IFoobarbazqux’,因爲它與其他‘App.IFoobourbazqwx’的註冊服務不同
    • 改爲:提示實現類型並非‘App.IFoobarbazqux’,因爲它與其他‘App.IFoobourbazqux’的註冊服務不同
  • P87第1段
    • 原文:Replace 方法會使用指定的 c 替換第一個具有相同服務類型的 ServiceDescriptor 對象,實際操作是先刪除後添加。
    • 改爲:Replace 方法會使用指定的 參數替換第一個具有相同服務類型的 ServiceDescriptor 對象,實際操作是先刪除後添加。
  • P189第3段
    • 原文:當一個空的 Options 對象被實例化之後,OptionsFactory工廠會利用如下 ICongfigureOptions、ICongfigureOptions和 IPostConfigureOptions 這 3 接口表示的對象對它進行初始化。
    • 改爲:當一個空的 Options 對象被實例化之後,OptionsFactory工廠會利用如下 ICongfigureOptions、ICongfigureNamedOptions和 IPostConfigureOptions 這 3 接口表示的對象對它進行初始化。
  •   P211第1段
    • 原文:由於Debug 類型上的所 有方法通過條件編譯的形式被設置爲僅針對Debug 模式有效,但是如果程序是在Debug 模式下 進行編譯的,就意味着針對WriteLine 方法的調用不會出現在編譯生成的程序集中。
    • 改爲:由於Debug 類型上的所 有方法通過條件編譯的形式被設置爲僅針對Debug 模式有效,但是如果程序是在非Debug 模式下 進行編譯的,就意味着針對WriteLine 方法的調用不會出現在編譯生成的程序集中。
  •   P218第2段
    • 原文:在根據名稱篩選出訂閱的目標 DiagnosticListener 對象之後,調用其 Subscribe 方法註冊了一個 Observer>對象,並用它監聽發出的日誌事件。
    • 改爲:在根據名稱篩選出訂閱的目標 DiagnosticListener 對象之後,調用其 Subscribe 方法註冊了一個 Observer>對象,並用它監聽發出的日誌事件。
  • P220第2段
    • 原文:當該方法被執行時,系統彈出“Chooser Just-In-Time Debugger”對話框,如圖 7-8 所示。
    • 改爲:當該方法被執行時,系統彈出“Choose Just-In-Time Debugger”對話框,如圖 7-8 所示。
  •   P243第3段
    • 原文:EventListener 對象只能接收預先想 EventSource 分發的日誌事件的前提預先進行了訂閱的事件。
    • 改爲:EventListener 對象能夠接收 EventSource 分發日誌事件的前提是預先進行了訂閱的事件。
  •   P290第3段
    • 原文:如下面的代碼片段所示,ActivitySource 類型提供了 Name(必須)和 Version(可選)兩個屬性。
    • 改爲:如下面的代碼片段所示,ActivitySource 類型提供了 Name(必需)和 Version(可選)兩個屬性。
  • P315第1段
    • 原文:如下面的代碼片段所示, ConsdeLoggerProvider 類型上面標註了 ProviderAliasAttribute 特性並將別名設置爲“Console”,
    • 改爲:如下面的代碼片段所示, ConsoleLoggerProvider 類型上面標註了 ProviderAliasAttribute 特性並將別名設置爲“Console”,
    • P380第1段
      • 原文:但 InstanceName 僅僅是邏輯上的名稱,在數據庫服務器上並不存在一個對應的數據實例。。
      • 改爲:但 InstanceName 僅僅是邏輯上的名稱,在數據庫服務器上並不存在一個對應的數據庫實例。
      • P388第1段
        • 原文:我們將這個唯一標識的名稱設置爲 HttpClient
        • 改爲:我們將這個唯一標識稱爲HttpClient的名稱
      • P556第2段
        • 原文:由於應用初始化過程中的很多操作都與當前的承載環境有關,所以承載環境必須在運行應用最初的環境就被確定下來,並在整個應用生命週期內都不能改變。如
        • 改爲:由於應用初始化過程中的很多操作都與當前的承載環境有關,所以承載環境必須在運行之初就被確定下來,並在整個應用生命週期內都不能改變。如
      • P558第1段
        • 原文:如果利用 WebApplicationOptions 來對應用所在的承載環境進行設置,則上面演示的程序可以修改成如下形式。由於 WebApplicationOptions 並不包含 WebRootPath 對應的配置選項,如果程序運行後則會發現承載環境的這個屬性爲空。由
        • 改爲:如果利用 WebApplicationOptions 來對應用所在的承載環境進行設置,則上面演示的程序可以修改成如下形式。由於 WebApplicationOptions 並不包含 WebRootPath 對應的配置選項,如果程序運行後則會發現承載環境的這個屬性爲空
      • P558第1段代碼
        • 原文:
      var options = new WebApplicationOptions
      {
       Args = args,
       ApplicationName = "MyApp",
       ContentRootPath = Path.Combine(Directory.GetCurrentDirectory(), "contents"),
       EnvironmentName = "staging"
      };
        • 改爲:
      var options = new WebApplicationOptions
      {
       Args = args,
       ApplicationName = "MyApp",
       ContentRootPath = Path.Combine(Directory.GetCurrentDirectory(), "contents"),
       WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "contents","wwwroot"),
       EnvironmentName = "staging"
      };
      • P582第3段
        • 原文:表17-3 列舉的衆多特性接口在後續相關章節中都會涉及,目前我們只關心表示請求和響應 的IHttpRequestFeatureIHttpResponseFeature 接口和IHttpResponseBodyFeature 接口。從下面的代 碼片段可以看出,兩個接口具有與抽象類HttpRequest 和HttpResponse 一致的定義。
        • 改爲:表17-3 列舉的衆多特性接口在後續相關章節中都會涉及,目前我們只關心表示請求和響應 的IHttpRequestFeature接口、IHttpResponseFeature 接口和IHttpResponseBodyFeature 接口。從下面的代 碼片段可以看出,兩個接口具有與抽象類HttpRequest 和HttpResponse 一致的定義。
      • P619第1段
        • 原文:Minimal API 只是在基於 IHost/IHostBuilder 的服務承載系統上進行了封裝,它利用 WebApplication 和 WebApplicationBuilder 這兩個類型提供了更加簡潔的 Minimal API,同時提供了與現有 Minimal API 的兼容。
        • 改爲:Minimal API 只是在基於 IHost/IHostBuilder 的服務承載系統上進行了封裝,它利用 WebApplication 和 WebApplicationBuilder 這兩個類型提供了更加簡潔的 API,同時提供了與現有 API 的兼容。
      • P622第3段
        • 原文:WebApplicationBuitder 還定義了 Host 屬性和 WebHost 屬性,對應類型爲 ConfigureHostBuilder 和 ConfigureWebHostBuilder,它們分別實現了 IHostBuilder 接口和 IWebHostBuilder 接口,其目的是複用 IHostBuilder 接口和 IWebHostBuilder 接口承載的 Minimal API(主要是擴展方法)。
        • 改爲:WebApplicationBuitder 還定義了 Host 屬性和 WebHost 屬性,對應類型爲 ConfigureHostBuilder 和 ConfigureWebHostBuilder,它們分別實現了 IHostBuilder 接口和 IWebHostBuilder 接口,其目的是複用 IHostBuilder 接口和 IWebHostBuilder 接口承載的 API(主要是擴展方法)。
      • P675第2段
        • 原文:在激活 ASP.NET Core 承載進程之前,ASP.NET Core Module 會選擇一個可用的端口,該端口和當前應用的路徑(該路徑將作用 ASP.NET Core 應用的 PathBase)被寫入環境變量,對應的環境變量名稱分別爲“ASPNETCORE_PORT”和“ASPNETCORE_APPL_PATH”。
        • 改爲:在激活 ASP.NET Core 承載進程之前,ASP.NET Core Module 會選擇一個可用的端口,該端口和當前應用的路徑(該路徑將作爲 ASP.NET Core 應用的 PathBase)被寫入環境變量,對應的環境變量名稱分別爲“ASPNETCORE_PORT”和“ASPNETCORE_APPL_PATH”。
      • P697第2段
        • 原文:但只有將另一個名爲 ServeUnknownFileTypes 的屬性設置爲 True 表示支持位置文件類型,中間件纔會採用這個默認設置的媒體類型。
        • 改爲:但只有將另一個名爲 ServeUnknownFileTypes 的屬性設置爲 True 表示支持未知文件類型,中間件纔會採用這個默認設置的媒體類型。
      • P699第3段
        • 原文:爲了使讀者對 StaticFileMiddleware 中間件處理靜態文件的請求有更加深刻的認識,下面採用相對簡單的代碼來重新定義這個中間件。這個模擬中間件具有與 StaticFileMiddleware 相同的功能,它能夠將目標文件的內容採用正確的媒體類型響應給客戶端,同時能夠處理條件請求和區間請求。該中間件處理靜態文件請求的整個處理流程大體上可以分爲以下 3 個步驟。
        • 改爲:爲了使讀者對 StaticFileMiddleware 中間件處理靜態文件的請求有更加深刻的認識,下面採用相對簡單的代碼來重新定義這個中間件。這個模擬中間件具有與 StaticFileMiddleware 相同的功能,它能夠將目標文件的內容採用正確的媒體類型響應給客戶端,同時能夠處理條件請求和區間請求。StaticFileMiddleware 中間件處理靜態文件請求的整個處理流程大體上可以分爲以下 3 個步驟。
        • P715第2段
          • 原文:一般來說,在利用某路由終節點與待路由的請求進行匹配時只需要考慮請求地址的路徑部分,忽略主機(Host)名稱和端口,但是一定要加上主機名稱(含端口)的匹配策略。
          • 改爲:一般來說,在利用某路由終節點與待路由的請求進行匹配時只需要考慮請求地址的路徑部分,忽略主機(Host)名稱和端口,但是一定要加上主機名稱(含端口)的匹配策略也是可以的
          • P739第2段
            • 原文:如下特性實現了上面幾個接口,它們都被定義在“Microsoft.AspNetCore.Mvc”命名空間下,它們原本是爲了 ASP.NET Core MVC 下的模型綁定服務的。值得一提的是, FromQueryAttribute 特性不被支持。
            • 改爲:如下特性實現了上面幾個接口,它們都被定義在“Microsoft.AspNetCore.Mvc”命名空間下,它們原本是爲了 ASP.NET Core MVC 下的模型綁定服務的。值得一提的是, FromQueryAttribute 特性不被支持。
          • P772第2段
            • 原文:將DeveloperExceptionPageMiddleware 中間件註冊到這兩個路由分支上,採用的異常處理器都會將響應狀態碼設置爲404。
            • 改爲:將ExceptionHandlerMiddleware中間件註冊到這兩個路由分支上,採用的異常處理器都會將響應狀態碼設置爲404。
            • P804第1段
              • 原文:程序運行之後,利用 Chrome 和 IE 訪問請求註冊的終節點,從圖 23-1 可以看出,針對 Chrome 的兩次請求的 Session ID 和會話狀態值都是一致的,但是瀏覽器中顯示的則不同。
              • 改爲:程序運行之後,利用 Chrome 和 IE 訪問請求註冊的終節點,從圖 23-1 可以看出,針對 Chrome 的兩次請求的 Session ID 和會話狀態值都是一致的,但是IE瀏覽器中顯示的則不同。
            • 832第插圖25-2
              • image
              • P839第1段
                • 原文:RewriteMiddleware 中間件具有對應的 RewriteOptions 配置選項,重定向規則最終註冊在 IList 對象的 Rules 屬性中,具體的規則可以調用 Add 擴展方法添加到此列表中。
                • 改爲:RewriteMiddleware 中間件具有對應的 RewriteOptions 配置選項,重定向規則最終註冊在 IList <IRule>對象的 Rules 屬性中,具體的規則可以調用 Add 擴展方法添加到此列表中。
              • P884第2段
                • 原文:這兩個缺失的方法分別定義在如下 IAuthenticationHandler 的 IAuthenticationSignOutHandler 接口中。
                • 改爲:這兩個缺失的方法分別定義在如下 IAuthenticationSignInHandler  IAuthenticationSignOutHandler 接口中。
                  • P891第2段
                    • 原文:如下面的代碼片段所示,IClaimsTransformation 接口提供的 TransformAsync 方法可以實現 ClaimsPrincipal 對象的轉換或者加跟
                    • 改爲:如下面的代碼片段所示,IClaimsTransformation 接口提供的 TransformAsync 方法可以實現 ClaimsPrincipal 對象的轉換或者加工
                    • P895第1段
                      • 原文:當調用 AuthenticationBuilder 的 AuthenticationBuilder 註冊認證方案時,需要同時指定認證處理器和對應配置選項的類型,該類型一般會派生如下 AuthenticationSchemeOptions 類型。
                      • 改爲:當調用 AuthenticationBuilder 的 AddScheme方法註冊認證方案時,需要同時指定認證處理器和對應配置選項的類型,該類型一般會派生如下 AuthenticationSchemeOptions 類型。
                            發表評論
                            所有評論
                            還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
                            相關文章