在网络共享上保存文件 C# .Net core 3

Save file on a network share C# .Net core 3

我正在尝试将 xml 文件保存到网络共享上,但由于某些未知原因,保存过程停止了。

例如: 我有一个 xml 文档,我想将其另存为

var filename = {guid}.xml
var shareFolder = "\\<my machine\Share";
var filePath = Path.Join(shareFolder,filename);

我检查过

Directory.Exists(shareFolder)

returns 正确 - 因此至少该文件夹存在于共享中。

文件夹的共享权限设置为 "write" 所有人。

我尝试使用

xml.Save(filePath); 
File.WriteAllText(filePath, xml.OuterXml);

但得到了类似的结果,即保存过程逐渐停止。 日志也没有告诉我任何信息。

我使用 https://github.com/mj1856/SimpleImpersonation 进行身份验证。

.Net Core 3.1 的最终结果如下所示:

    private void Process xml(string xmlInput)
    {
            var xmlDocument = XDocument.Parse(xmlInput);
            var filename = $"{Guid.NewGuid()}.xml";
            var filePath = Path.Combine(_outputFolder, filename);

            if (filePath.StartsWith("\"))
            {
                SaveOnNetworkShare(xmlDocument, filePath);
            }
            else
            {
                SaveLocally(xmlDocument, filePath);
            }

    }

    private void SaveLocally(XmlDocument xml, string filePath)
    {
        xml.Save(filePath);
    }

    private void SaveOnNetworkShare(XmlDocument xml, string filePath)
    {
        try
        {
            Impersonation.RunAsUser(_credentials, LogonType.Network, () =>
            {
                xml.Save(filePath);
            });
        }
        catch (ImpersonationException ex)
        {
            _logger.LogError(new EventId(-1, "Error saving file"), ex, $"Could not save file to filepath {filePath}");
        }
    }