.Net Core 技巧小结
我们写好的.net core 网站想要发布运行,通常会使用IIS或者Windows服务托管,当我们引用的资源特殊,需要单独添加的时候,该怎么做呢?比如说页面加载.glb文件
IIS中MIME配置
当我们使用IIS的方式部署网站,可以打开IIS找到MIME类型
其中有常用的数据类型,如有需求可以点击添加
这样就可以正常的加载特殊格式的文件了。
Kestral中MIME配置
但是在IIS中存在回收机制,对于定时任务,如果长时间没有操作,将会自动回收,定时任务就自动清理掉了,这样就要使用Windows服务的部署方式了,那么在kestral中该如何设置呢,加上如下代码即可。
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".glb"] = "model/gltf-binary";
跨域访问
app.UseCors(options =>
{
options.WithOrigins("http://0.0.0.0"); // 允许特定ip跨域
options.AllowAnyHeader();
options.AllowAnyMethod();
options.AllowCredentials();
});
获取应用路径
程序中往往会出现要读取配置文件的需求,然而,有时在开发环境中测试好的程序,部署了之后就出问题了,提示路径下不存在文件,其实,.net core默认的位置是C盘WINDOWS文件夹中,以下列举集中常用的获取应用程序路径的方法。
// 获取程序的基目录。
var path = AppDomain.CurrentDomain.BaseDirectory;
_logger.Info(path);
// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
path = Environment.CurrentDirectory;
_logger.Info(path);
// 获取应用程序的当前工作目录,注意工作目录是可以改变的,而不限定在程序所在目录。
path = Directory.GetCurrentDirectory();
_logger.Info(path);
// 获取和设置包括该应用程序的目录的名称。
path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
_logger.Info(path);
得到结果如下: