Заранее благодарим за любую помощь.
Я видел несколько постов на Переполнение стека и других сайтах в сети (включая Документы Microsoft ), но ни один из них не помог мне решить мою проблему.
Я работаю над проектом, который подключается к XML-файлу на удаленном общем файловом ресурсе из WinPE. Я использовал предложения из другого поста об использовании класса XmlUriResolver для «умеренного» успеха.
Проблема, с которой я сейчас сталкиваюсь, это либо ошибка «Отказано в доступе» (несколько попыток изменить класс XmlUriResolver.Credentials), либо полный сбой без какой-либо причины сбоя. Я предполагаю, что это будет еще одна ошибка «Отказано в доступе», но моя попытка / улов (исключение e) не фиксирует причину.
Ниже приведен фрагмент и соответствующая часть метода, который я пытаюсь реализовать:
relativeSysData = relativeSysData.Replace(@"\", "/");
SysdataXml = $"file://{_globaldata.Server}/{_globaldata.Share}/{relativeSysData}";
XmlUrlResolver XmlResolver = new XmlUrlResolver();
XmlResolver.Credentials = new NetworkCredential(_UserName,
_Password);
XmlReaderSettings xmlSettings = new XmlReaderSettings();
xmlSettings.XmlResolver = XmlResolver;
LogWriter.WriteLogFile((int)LogWriter.EventID.Xml, (int)LogWriter.EventType.Info,
$"Connecting to (remote) System information store at: {SysdataXml}");
xDoc = XDocument.Load(XmlReader.Create(SysdataXml, xmlSettings));
if (xDoc == null)
{
LogWriter.WriteLogFile((int)LogWriter.EventID.XmlError, (int)LogWriter.EventType.Error,
$"Unable to connect to the (remote) data store located at: {SysdataXml}");
deploy = false;
capture = false;
return result;
}
Эта часть метода предназначена для доступа к удаленным данным. У меня есть оператор try / catch, охватывающий все методы.
Если у меня открытое подключение к сетевому ресурсу, метод будет работать безупречно, но приведет к сбою приложения, из-за которого уже открывается приложение.
У меня есть возможная альтернатива, чтобы обойти это решение, но это будет стоить дополнительных строк кода.
Любая помощь в решении этого вопроса без обращения к WNetAddConnection () будет с благодарностью получена
С уважением
Richie
N.B. Я знаю, что это проблема аутентификации.