Междоменная Silverlight

Вы просмотрели запись в Википедии для магического номера ?

В деталях рассказывается обо всех способах создания ссылки на магические числа. Вот цитата из магического числа как плохая практика программирования

Термин «магическое число» также относится к плохой практике программирования использования чисел непосредственно в исходном коде без объяснения причин. В большинстве случаев это затрудняет чтение, понимание и поддержку программ. Хотя большинство руководств делают исключение для чисел с нулем и единицей, полезно определить все остальные числа в коде как именованные константы.

blockquote>

25
задан GEOCHET 10 March 2009 в 02:50
поделиться

5 ответов

У меня была эта та же проблема пару раз. В прошлом я решил это при помощи веб-приложения как запуск, но похоже, что Вы уже сделали это.

Мое сообщение на предмете: http://www.donnfelker.com/silverlight-cross-domain-issue/

5
ответ дан Tim Groeneveld 16 October 2019 в 07:06
поделиться

Клиентская Конфигурация

, Возможно, Ваш ServiceReferences.ClientConfig для Вашего клиента Silverlight указывает на неправильный URL?

кроме того, проверьте местоположение своего междоменного файла политики. Эта статья MSDN имеет больше информации.

Локально Рабочий Silverlight

Дополнительное примечание для выполнения Silverlight локально (Боковая панель Vista, например). Как сообщается в эта запись в блоге , "Silverlight не может использовать поставщика сетевых услуг при выполнении локально". обходное решение должно использовать JavaScript для взаимодействия через интерфейс к веб-сервису в этой ситуации.

2
ответ дан Jeff Yates 16 October 2019 в 07:06
поделиться

Вы попробовали скрипач при использовании этого через IE, Вы смогли видеть трафик, который Silverlight вызывает, такой как, которые пересекают файлы политики, которые это ищет?

1
ответ дан meandmycode 16 October 2019 в 07:06
поделиться

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

class MyHostFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        MyHost customServiceHost =
          new MyHost(serviceType, new Uri("[Your URL goes here]",UriKind.Absolute));

        return customServiceHost;
    }
}

class MyHost : ServiceHost
{
    public MyHost(Type serviceType, params Uri[] baseAddresses)   base(serviceType, baseAddresses)
    { }

    protected override void ApplyConfiguration()
    {
        base.ApplyConfiguration();
    }
}

также необходимо добавить Фабрику = "MyHostFactory" в теге, который определяет сервис

0
ответ дан ScottG 16 October 2019 в 07:06
поделиться

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

[ServiceContract]
    public interface ICrossDomainService
    {
        [OperationContract]
        [WebGet(UriTemplate = "ClientAccessPolicy.xml")]
        Message ProvidePolicyFile();
    }

, и тогда ProvidePolicyFile() может быть

public System.ServiceModel.Channels.Message ProvidePolicyFile()
        {
            FileStream filestream = File.Open(@"ClientAcessPolicy.xml", FileMode.Open);
            // Either specify ClientAcessPolicy.xml file path properly
            // or put that in \Bin folder of the console application
            XmlReader reader = XmlReader.Create(filestream);
            System.ServiceModel.Channels.Message result = Message.CreateMessage(MessageVersion.None, "", reader);
            return result;
        }
0
ответ дан 28 November 2019 в 21:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: