You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程服务器抛出System.IO.DirectoryNotFoundException错误求助

解决Umbraco部署后读取Excel中图片路径报错的问题

首先咱们得揪出这个错误的核心原因:你本地测试时,Excel里的图片路径是自己电脑上的绝对路径(比如C:\Users\gwphi_000\Desktop\test\OrderEmail.png),但部署到远程服务器后,服务器根本没有这个路径的文件——就算凑巧路径存在,应用池的Network Services账户也大概率没权限访问你本地的桌面目录,这就直接触发了找不到路径的异常。

下面给你一步步的解决方案:

1. 修正Excel中的图片路径逻辑

别再让Excel里存本地绝对路径了,这在服务器上完全行不通。你可以改成两种更合理的方式:

  • 让用户上传Excel的同时,把所有关联的图片文件也上传到服务器的指定目录(比如网站根目录下的uploads/images),然后Excel里只填图片文件名或者相对服务器目录的路径。
  • 如果必须用路径,就用服务器上的相对路径,比如/uploads/images/OrderEmail.png,而不是本地的C盘路径。

2. 调整代码中的路径处理逻辑

你原来的代码直接用Path.GetFullPath(item.ProductUrl)读取本地路径,这在服务器上肯定找不到文件。改成用服务器端的根目录来拼接正确路径:

如果你用的是ASP.NET Core + Umbraco

先注入IWebHostEnvironment来获取网站根目录,然后拼接服务器路径:

// 注入的IWebHostEnvironment实例
private readonly IWebHostEnvironment _webHostEnv;

// 读取图片时的代码
var serverImageDir = Path.Combine(_webHostEnv.WebRootPath, "uploads", "images");
var fullServerPath = Path.Combine(serverImageDir, item.ProductUrl);

// 先检查文件是否存在,避免直接报错
if (!File.Exists(fullServerPath))
{
    // 这里可以加日志记录或者跳过当前项,比如:
    _logger.LogWarning("图片文件不存在:{Path}", fullServerPath);
    continue;
}

// 再读取文件内容
byte[] buffer = File.ReadAllBytes(fullServerPath);
MemoryStream strm = new MemoryStream(buffer);
// 后续创建Umbraco媒体的代码保持不变...

如果你用的是旧版Umbraco(.NET Framework)

可以用Server.MapPath来获取服务器路径:

var serverImageDir = Server.MapPath("~/uploads/images");
var fullServerPath = Path.Combine(serverImageDir, item.ProductUrl);

3. 确保服务器权限配置正确

即使路径对了,Network Services账户也得有读取图片目录的权限:

  • 找到服务器上的图片存储目录(比如C:\inetpub\wwwroot\你的站点名\uploads\images)。
  • 右键目录 → 权限 → 添加Network Services账户,给它读取和执行、列出文件夹内容、读取的权限。

4. 额外的错误处理建议

在代码里加一些异常捕获,避免单个图片文件的问题导致整个Excel处理失败:

foreach (var item in excelList)
{
    try
    {
        // 你的原有代码(已经修改路径处理后的)
    }
    catch (Exception ex)
    {
        // 记录错误日志,方便排查问题
        _logger.LogError(ex, "处理商品{ProductName}时出错", item.Product);
        // 选择跳过当前项继续处理,避免全部失败
        continue;
    }
}

这样调整后,应该就能解决部署到服务器后的路径找不到问题了。

内容的提问来源于stack exchange,提问作者George Phillipson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:50:58