asp.net core 附加进程调试、指令等

NETCORE基本配置

新建项目-ASP.NET Core Web API
依赖包

基本功能 GuGet 备注
log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore demo
swagger Swashbuckle.AspNetCore demo
BaseController - demo
日志注入 - demo

附加进程调试

打开项目选择【调试-附加到进程】
(.net framework 要附加到 w3wp.exe,.net core 要附加到 dotnet.exe)

热更新版本bat

@echo off
chcp 65001
# 先根据服务名称删除相关服务
set rootPath=%~1
set serviceName=%~2
taskkill /F /T /FI "WINDOWTITLE eq %serviceName%" /IM dotnet.exe
# 转到服务根目录
cd /d %rootPath%

echo ASPNETCORE_ENVIRONMENT=Development
dotnet build      %默认Debug编辑模式./bin/Debug/%
start "%serviceName%" dotnet watch run
exit

断点调试版本bat

@echo off
chcp 65001

set rootPath=%~1
set serviceName=%~2
taskkill /F /T /FI "WINDOWTITLE eq %serviceName%" /IM dotnet.exe

cd /d %rootPath%\bin\Debug\netcoreapp2.1
start "%serviceName%" dotnet %serviceName%.dll

发布版本bat

@echo off
chcp 65001

set rootPath=%~1
set serviceName=%~2
set targetFramework=%~3
taskkill /F /T /FI "WINDOWTITLE eq %serviceName%" /IM dotnet.exe

set COMPILE_PATH=%rootPath%\bin\Release\%targetFramework%\publish\
rd "%COMPILE_PATH%" /s/q
cd /d %rootPath%
dotnet publish -c Release

Configuration

静态读取

var demo = this.Configuration.GetSection(nameof(Demo)).Get<Demo>();
Console.WriteLine(demo.ToString());

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<Demo>(this.Configuration.GetSection(nameof(Demo)));
}

动态配置

public void ConfigureServices(IServiceCollection services)
{
	services.Configure<Demo>(binder=>
	{
		binder.Property1 = var1;
		binder.Property2 = var2;
	});
}
// inject
public DemoController(IOptions<Demo> setting)
{
    var demo = setting.Value;
}

写文件到指定目录

写文件到指定目录

合适的Exception

ArgumentException
ArgumentNullException
NotImplementedException

posted @ 2020-09-01 11:22  wesson2019  阅读(708)  评论(0编辑  收藏  举报