Доступ к пути запрещен при записи из службы WCF в общий сетевой ресурс - PullRequest
0 голосов
/ 03 апреля 2012

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

Это, очевидно, прекрасно работает при разработке, но при размещении на сервере я постоянно получаю следующее сообщение:

Access to the path '\\servername\folderpath\folder\filename.ext' is denied

Удаленная папка имеет очень разрешительные разрешения - все имеют полный контроль над этой папкой прямо сейчас. Служба также работает под учетной записью Active Directory, и этому пользователю также предоставлен полный контроль над папкой. При поиске в SO и на других сайтах это, похоже, было общей ошибкой, или проблемы были связаны с asp.net и IIS. Это служба Windows.

Вот пример моего довольно простого кода:

// export the file to path
string theFileContents = "why wont this save?";
string theFilePath = System.Configuration.ConfigurationManager.AppSettings["filelocation"];
using (StreamWriter file = new StreamWriter(theFilePath + accountNumber + ".ext"))
{
     file.WriteLine(theFileContents);
     file.Close();
}

и вот как я его настроил в app.config:

<add key="filelocation" value="\\server\folderpath\folder\"/>

Я совершенно уверен, что если я обновлю свой клиент, чтобы получить строку и записать ее в файл на общем ресурсе, он будет работать из-за этой настройки (как это происходит в процессе разработки или когда служба работает под моей учетной записью) в отладке в VS2010) - но я действительно не хотел, чтобы он совершил эту поездку - и просто переходил с сервера на сервер.

1 Ответ

1 голос
/ 04 апреля 2012

В результате возникла проблема с разрешениями, которая была обнаружена с помощью инструмента rmtshare , Explorer отображал это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...