ASP.Net Core 新手常見問題如下:
1. ASP.Net Core預設使用CamelCase作為命名規則,如何改用PascalCase作為命名規則 ?
※解答:在Startup.cs加入以下設定:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options =>
options.SerializerSettings.ContractResolver = new DefaultContractResolver());
}
2. 如何回傳JSON時忽略null欄位 ?
※解答:在Startup.cs加入以下設定:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
});
}
3. 如何忽略JSON序列化時的循環參考 ?※解答:在Startup.cs加入以下設定:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});
}
4. 如何將ASP.Net Core佈署至IIS ?
※解答:
佈署步驟如下:
(1) 安裝.NET Core Windows Server Hosting
(2) 新增站台並且將CLR版本改為沒有Managed程式碼
(3) 透過dotnet publish指令將編譯後的dll與dependency放到publish目錄
(4) 將publish目錄內容放到IIS站台設定的位置,並將其轉換為應用程式
5. 使用HTTP Method Put和Delete時總是出現405 Method Not Allowed ?
※解答:
ASP.Net Core在使用HTTP Method PUT或DELETE時會與WebDAV套件發生衝突,兩種解法如下所示:
(1) 從IIS中移除WebDAV套件
(2) 在Web.config加入remove標籤如下所示:
<configuration>
<system.webServer>
<modules>
<!-- ... -->
<remove name="WebDAVModule"/>
</modules>
<handlers>
<!-- ... -->
<remove name="WebDAV" />
</handlers>
</system.webServer>
</configuration>
6. 如何在ASP.Net Core啟用CORS ?
※解答:
在Startup.cs加入以下設定:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors(options => options
.WithOrigins()
.AllowAnyHeader()
.AllowAnyMethod()
);
}
留言
張貼留言