银河麒麟服务器v10 sp1 .Net6.0 上传文件错误 access to the path is denied

news/2024/9/28 12:53:02 标签: .Net6, 银河麒麟服务器v10

上一篇:银河麒麟服务器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客

.NET 6之前,在Linux服务器上安装 libgdiplus 即可解决,libgdiplus是System.Drawing.Common原生端跨平台实现的主要提供者,是开源mono项目。地址:GitHub - mono/libgdiplus: C-based implementation of the GDI+ API

因此,解决方法当然是安装相关的依赖:

1、CentOS

通过一键命令

sudo curl https://raw.githubusercontent.com/stulzq/awesome-dotnetcore-image/master/install/centos7.sh|sh

或者

yum update
yum install libgdiplus-devel -y
ln -s /usr/lib64/libgdiplus.so /usr/lib/gdiplus.dll
ln -s /usr/lib64/libgdiplus.so /usr/lib64/gdiplus.dll

2、银河麒麟V10 或 Ubuntu

通过一键命令

sudo curl https://raw.githubusercontent.com/stulzq/awesome-dotnetcore-image/master/install/ubuntu.sh|sh

或者

apt-get update
apt-get install libgdiplus -y
ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

3、Docker

Dockerfile 加入 RUN 命令,以官方 asp.net core runtime 镜像,以 asp.net core 2.2 作为示例:

FROM microsoft/dotnet:2.2.0-aspnetcore-runtime
WORKDIR /app
COPY . .
RUN apt-get update -y && apt-get install -y libgdiplus && apt-get clean && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
EXPOSE 80
ENTRYPOINT ["dotnet", "<你的入口程序集>"]

需要注意的是apt-get update 这一步是必不可少的,不然会报找不到 libgdiplus。而且因为是官方镜像,用的是Debain10构建的docker镜像,在编译运行构建时会非常慢。

由于本人项目已从NetCore3.1升级到Net6.0,参考连接:NetCore3.1项目升级到Net6.0_.net 3.0 .net6 升级_csdn_aspnet的博客-CSDN博客 

且项目中使用的System.Drawing.Common已替换为其它解决方法,如果你没有其它方案,请参考:.NET6 System.Drawing.Common 通用解决办法_csdn_aspnet的博客-CSDN博客 

于是修改代码,将错误信息在swagger页面调用接口测试中输出,方便解决具体问题,提示如下: 

 Access to the path '/xxx/xxx' is denied. 或 access to the path xxx is denied

说明当前用户权限不够,所以要使用chmod,将wwwroot文件夹授权:chmod 777 wwwroot

其中 777,所有用户都具有读取写入权限,再次使用swagger上传如下图:


http://www.niftyadmin.cn/n/4956223.html

相关文章

ARM汇编【1】:数据类型

与高级语言类似&#xff0c;ARM支持对不同数据类型的操作。我们可以加载或存储的数据类型可以是有符号和无符号字、半字或字节。这些数据类型的扩展名是&#xff1a;-h或-sh表示半字&#xff0c;-b或-sb表示字节&#xff0c;不表示字的扩展名。有符号数据类型或无符号数据类型之…

基础算法(双指针,离散化,区间合并)

NO.1 双指针算法 模板&#xff1a; for (int i 0, j 0; i < n; i ) {while (j < i && check(i, j)) j ;// 具体问题的逻辑 } //常见问题分类&#xff1a; // (1) 对于一个序列&#xff0c;用两个指针维护一段区间 // (2) 对于两个序列&#xff0c;维…

Qt - 多线程补充2

Qt - 多线程补充2 线程亲和性 线程亲和性 https://blog.csdn.net/zhoukai216/article/details/130348303 https://blog.csdn.net/MYTCHITOS/article/details/105892321

scanf(“%d\n“,n)存在的问题

问题描述见下&#xff1a; scanf("%d\n",&num)中的\n是很特别的_%d\n,&_HelloWorld_EE的博客-CSDN博客 原因是这样写会忽略掉换行符&#xff0c;而换行符是输入结束的标志&#xff0c;当你忽略之后&#xff0c;计算机就会认为你还没有输入结束&#xff0c;所…

Java“牵手“微店商品详情页面数据获取方法,微店API实现批量商品数据抓取示例

微店商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取微店商品详情数据&#xff0c;您可以通过开放平台的接口或者直接访问微店商城的网页来获取商品详情信息。以下是两种常用方法的介绍&#xff1a; 1. 通…

11.小程序的配置项

window导航配置 全局配置通过 app.json进行 “window”: { “backgroundTextStyle”: “light”, “navigationBarBackgroundColor”: “#fff”, “navigationBarTitleText”: “Weixin”, “navigationBarTextStyle”: “black” }, 局部配置通过页面的xx.json配置 { “navig…

vue 学习 -- day05(事件处理)

使用v-on:xxx 或 xxx 绑定事件&#xff0c;其中xxx是事件名&#xff1b;事件的回调需要配置在methods对象中&#xff0c;最终会在vm上&#xff1b;methods中配置的函数&#xff0c;不要用箭头函数&#xff01;否则this就不是vm了&#xff08;会指向 window&#xff09;&#xf…

对接海康明眸门禁设备-删除人员信息

对接海康明眸门禁设备-删除人员信息 文中登录 退出登录 长连接和海康hCNetSDK等接口 见文章 初始SDK和登录 /*** 删除人脸 IotCommDataResult 自定义类 收集结果*/Overridepublic List<IotCommDataResult> deleteFace(IotCameraParam camera, Collection<Long> us…