.Net Core 技巧小结

.Net Core 技巧小结

  • IIS中MIME配置
  • Kestral中MIME配置
  • 跨域访问
  • 获取应用路径

我们写好的.net core 网站想要发布运行,通常会使用IIS或者Windows服务托管,当我们引用的资源特殊,需要单独添加的时候,该怎么做呢?比如说页面加载.glb文件

IIS中MIME配置

当我们使用IIS的方式部署网站,可以打开IIS找到MIME类型
.Net Core 技巧小结_第1张图片
其中有常用的数据类型,如有需求可以点击添加

.Net Core 技巧小结_第2张图片
这样就可以正常的加载特殊格式的文件了。

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);

得到结果如下:

.Net Core 技巧小结_第3张图片

你可能感兴趣的:(asp.net,core,.netcore)