Доступ запрещен - создание каталога на сервере Microsoft с помощью Silverlight

1

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

Я сделал приложение с webservices в С#, которое работает в Silverlight. Моя проблема в том, что приложение должно создать каталог с относительным путем. Локально это работает, но когда я загружаю его на Microsoft Server, он не создает каталог.

В нем говорится следующее: операция с файлом не разрешена. Доступ к пути: 'c: /inetpub/wwwroot/...' отрицается.

Я использую эту строку кода для создания: Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("TEMP/");

На карте, где работает приложение, я предоставил все права публичному пользователю и пользователю IIS. Но он по-прежнему дает ту же ошибку. Помимо этого, я также написал небольшую часть независимого кода в.Net для создания каталога. Это должно было проверить доступ, и это работает.

Поэтому я не знаю, где искать.


@Update - 22/05/2014 - 14:29

Я буквально удалил весь код и просто сохранил функцию создания каталога с помощью одной кнопки и одного обработчика событий: Directory.CreateDirectory("путь");

Я заметил, что относительный путь здесь не работает в Silverlight. (Кажется, он считает путь браузером (например, Chrome) как родительский, а не путь приложения).

Некоторые другие находки заключаются в том, что если я установлю абсолютный путь. Локально это работает, но когда я загружаю его на сервер, он снова говорит, что acces denied...

Любые советы очень приветствуются!

Теги:
web-services
silverlight

1 ответ

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

Я нашел решение проблемы!

Следующее пошло не так: приложение Silverlight состоит из двух частей. Веб-сервис и клиент;

  • Веб-сервис выполняется как пользователь: IUSR, который имеет полные права на сервере.
  • Клиент выполняет роль пользователя: DefaultAppPool.

Проблема с этим заключается в том, что пользователю DefaultAppPool не могут быть предоставлены права так же легко. Если вы пытаетесь предоставить права по умолчанию, в настройках карты пользователь DefaultAppPool не может быть найден.

Правильный способ предоставить права на DefaultAppPool - это перейти в консоль управления и ввести:

icacls c:\"Путь к карте"/грант "IIS APPPOOL\DefaultAppPool" :( F)

Для получения более подробной информации об этом, проверьте следующую ссылку: http://eufuckingreka.wordpress.com/2013/02/12/granting-defaultapppool-permissions-to-a-direction-on-windows-server-2008/

Ещё вопросы

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