Проблема при чтении XML-файла в службе WCF

2

Служба WCF имеет один метод (скажем, TestMethod), в котором я пытаюсь создать поток файлов следующим образом:

            System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open);

Мой клиент и служба находятся на одном и том же решении.

Когда Клиент делает вызов TestMethod (Exposed in Web-сервис), он выдаст эту ошибку:

Отправляется доступ к пути D:\DXDirectoryAuth.xml.

Пожалуйста, помогите!!

Теги:
wcf
wcf-binding

3 ответа

3
Лучший ответ

Вы пробовали:

System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open, System.IO.FileAccess.Read);

Конструктор по умолчанию FileStream() запрашивает доступ для чтения и записи.

  • 0
    Это не очень интуитивно понятно. Изменение режима доступа к файлам решило и мою проблему. Спасибо!
8

Хорошо, если вы поместили файл в каталог или подкаталог своей службы WCF, вы сможете получить доступ к файлу без каких-либо проблем с разрешениями.

Вопрос в том, как вы пытаетесь получить доступ к файлу?

Вероятно, вы должны получить текущий каталог службы, а затем добавить относительное местоположение файла в текущий каталог, а затем попытаться открыть файл примерно так:

var appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
bodyFile = Path.Combine(appPath, @"templates\email.txt");

var body = File.OpenText(bodyFile).ReadToEnd();

НТН

Олли

0

Безопасность

Причина, по которой вы пытаетесь получить доступ к местоположению файла за пределами каталога, в котором размещена ваша служба WCF...

Вам либо придется предоставить учетную запись, которую WCF выполняет под разрешениями в этом каталоге, либо переместить файл в каталог\подкаталог, в котором вы размещаете службу WCF.

Олли

  • 0
    Спасибо, Олли. Не могли бы вы мне помочь, как мне этого добиться? Моя служебная папка - «MyService», я поместил XML-файл в папку «MyService», но все равно выдает эту ошибку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню