Установите ClientAccessPolicy.xml на веб-сайт по умолчанию с помощью Wix - PullRequest
0 голосов
/ 22 сентября 2010

Я использую Wix для установки моего веб-приложения, и оно включает приложение Silverlight.Из-за междоменных ограничений мне нужно установить файл ClientAccessPolicy, чтобы приложение Silverlight могло взаимодействовать с включенными веб-службами.

К сожалению, ClientAccessPolicy.xml должен быть доступен в корневом каталоге сайтапоэтому я не могу просто разместить его на своих веб-сервисах или веб-сайте.например,

Работает: http://someserver/ClientAccessPolicy.xml
Не работает: http://someserver/MyApp/ClientAccessPolicy.xml

Как найти каталог для IIS «Веб-сайт по умолчанию», чтобы скопировать туда файл как частьиз установки?

1 Ответ

1 голос
/ 22 сентября 2010

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

ОБНОВЛЕНИЕ: пример кода C # для этого может выглядеть следующим образом:

 DirectoryEntry website = new DirectoryEntry(string.Format("IIS://localhost/w3svc/{0}/Root", siteID));
 if (website != null)
 {
    string sitePath = website.InvokeGet("Path") as string;
    if (sitePath != null)
    {
       session["SITE_PATH"] = sitePath;
       return ActionResult.Success;
    }
 }
 return ActionResult.Failure;

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

Также обратите внимание, что этот код требует специальных прав доступа к DirectoryEntry - обычному пользователю недостаточно.

Надеюсь, это поможет.

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