上一篇:銀河麒麟服務(wù)器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客
.NET 6之前,在Linux服務(wù)器上安裝 libgdiplus 即可解決,libgdiplus是System.Drawing.Common原生端跨平臺(tái)實(shí)現(xiàn)的主要提供者,是開源mono項(xiàng)目。地址:GitHub - mono/libgdiplus: C-based implementation of the GDI+ API
因此,解決方法當(dāng)然是安裝相關(guān)的依賴:
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 這一步是必不可少的,不然會(huì)報(bào)找不到 libgdiplus。而且因?yàn)槭枪俜界R像,用的是Debain10構(gòu)建的docker鏡像,在編譯運(yùn)行構(gòu)建時(shí)會(huì)非常慢。
由于本人項(xiàng)目已從NetCore3.1升級(jí)到Net6.0,參考連接:NetCore3.1項(xiàng)目升級(jí)到Net6.0_.net 3.0 .net6 升級(jí)_csdn_aspnet的博客-CSDN博客?
且項(xiàng)目中使用的System.Drawing.Common已替換為其它解決方法,如果你沒有其它方案,請(qǐng)參考:.NET6 System.Drawing.Common 通用解決辦法_csdn_aspnet的博客-CSDN博客?
于是修改代碼,將錯(cuò)誤信息在swagger頁面調(diào)用接口測(cè)試中輸出,方便解決具體問題,提示如下:?
?Access to the path '/xxx/xxx' is denied. 或 access to the path xxx is denied
說明當(dāng)前用戶權(quán)限不夠,所以要使用chmod,將wwwroot文件夾授權(quán):chmod 777 wwwroot文章來源:http://www.zghlxwxcb.cn/news/detail-663046.html
其中 777,所有用戶都具有讀取寫入權(quán)限,再次使用swagger上傳如下圖:文章來源地址http://www.zghlxwxcb.cn/news/detail-663046.html
到了這里,關(guān)于銀河麒麟服務(wù)器v10 sp1 .Net6.0 上傳文件錯(cuò)誤 access to the path is denied的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!