Asp.Net Core Kestrel設定Request Body Size

前兩天同事利用Web Api Post上傳檔案碰到了Request body too large的問題,我想到過去的經驗就是因為預設值比較小,所以改一下設定應該就可以Work了。

Request body too large

Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Request body too large.
at Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException.Throw(RequestRejectionReason reason)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ContentLengthMessageBody.OnReadStarting()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.TryStart()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.ConsumeAsync()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication1 application) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication1 application)

通常不會把每一個設定值都記在腦中,所以就搜尋了一下Kestrel Server的設定應該在appsettings.json檔案中如何調整,查到了設定MaxRequestBodySize的C#程式碼,但是翻了很多篇網路上的文章都沒有找到如何在設定檔裡面調整的方法…

閱讀全文

單元測試與資料表自動遞增Id的問題

今天同事問了一個關於資料庫建立資料表重設Id遞增值的問題,主要是在單元測試中,使用的資料庫並不是每次都重新建立,而是在執行單元測試之前,將資料表中的資料刪除,並且將Id欄位的初始值重設。
為了達到上面的需求,所以在一開始的時候會執行刪除資料和DBCC CHECKIDENT (‘TableName’, RESEED, 0)將資料表的遞增種子重設為0,這樣在新增資料的時候就會+1變成從1開始(一般正常的情況)。

不過問題是,如果資料庫和資料表是第一次剛建立的,使用這個指令會讓Id欄位一開始的編號是0,期望的初始編號是1,但是在之後刪除資料並且使用上面的指令後,再新增資料的初始編號就會從1開始,符合期望的數字。

閱讀全文