♥…ЯҠ…♥ Ответов: 3

Перед крест домена ошибка


Привет друзья,

Я столкнулся с междоменной проблемой во время запуска приложения, ошибка

Система.Сервис-модель.CommunicationException: произошла ошибка при попытке сделать запрос к URI 'hhtp://localhost/Silverlight / Services / abcservice.svc'. Это может быть связано с попыткой получить доступ к службе междоменным способом без наличия междоменной политики или политики, которая не подходит для служб soap.Эта ошибка также может быть создана с помощью внутренних типов в прокси-сервере веб-службы без использования атрибута InternalVisibleAttribute. Пожалуйста, посмотрите внутреннее исключение. --&ГТ; бла-бла

Я поискал и нашел один сайт [^]это дает решение проблемы междоменных ошибок вздохов!!!!

Я сделал именно то, что он сказал, но решения нет.

Я скопировал clientaccesspolicy.xml и crossdomain.xml файл и поместил его в корневую папку моего проекта.

Но служба (. svc) и ее кодовый файл (.cs) помещены в мой проект в папке с именем service.

Согласно сайту, в котором он говорит, размещение двух xml-файлов в корневой папке, в которой есть служба, решит эту проблему.
Но в моем случае это не так.

что же мне делать?

Пожалуйста, помогите мне как можно скорее!!!!
Любые идеи будут очень оценены!!!

TRK3

Вам нужно дать нам больше информации, если вы рассчитываете получить какую-то помощь.

Что такое точное сообщение об ошибке/код? Когда/где это происходит?

Вы говорите, что " скопировали clientaccesspolicy.xml и crossdomain.xml файл и поместил его в корневую папку моего проекта"

(а) эти файлы должны находиться в корне сервера [что, вероятно, не то же самое, что " корневая папка моего проекта"]

(Б) нет никакого способа определить, действительно ли то, что у вас есть в этих файлах, является тем, что вам нужно иметь в этих файлах.

♥…ЯҠ…♥

Я отредактировал свой вопрос.....

3 Ответов

Рейтинг:
14

♥…ЯҠ…♥

Иногда что-то встает на моем пути.
Я сделал все, что мог, но застрял с этой ошибкой.
Я искал в google эту ошибку, поместил clientaccesspolicy.xml в служебной папке, помещенной crossdomain.xml в том же.Но у меня ничего не получается.

Только тогда я пытаюсь добавить номер порта в свой путь к служебному адресу в ServiceReferences.Файл ClientConfig.
Раньше это было похоже

<endpoint address="http://localhost/Services/ManualFileUpload.svc">
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ManualFileUpload"
contract="UploadFileService.ManualFileUpload" name="BasicHttpBinding_ManualFileUpload" /></endpoint>

Я добавил номер порта (4009) к этому адресу следующим образом
<endpoint address="http://localhost:4009/Services/ManualFileUpload.svc">
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ManualFileUpload"
contract="UploadFileService.ManualFileUpload" name="BasicHttpBinding_ManualFileUpload" /></endpoint>

Теперь он отлично и круто работает в приложении.
И теперь ошибка Междоменные политики прописи.

Спасибо, друзья.


Рейтинг:
1

Kuthuparakkal

Если вы хотите вызвать веб-сервис, то корень сайта должен иметь crossdomain.xml это содержит:

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>



Смотреть на:
http://msdn.microsoft.com/en-us/library/cc197955(v=против 95). aspx[^]


♥…ЯҠ…♥

Вот что я уже упоминал я сделал копируя crossdomain.xml и clientaccesspolicy.xml в удаленной папке но ничего не получается

Kuthuparakkal

Не только копирование будет делать :
В статье говорится: "чтобы разрешить доступ к HTTPS-сервису из любого элемента управления Silverlight, размещенного через HTTP-приложение, вам нужно поместить элемент "<domain uri=”https://*”">/domain> внутри вашего элемента "allow-from".

♥…ЯҠ…♥

Я сделал это тоже.... я добавил для http и https, а также.

Kuthuparakkal

обновленное решение, попробуйте прямо сейчас

Рейтинг:
0

Member 10418853

Я также столкнулся с той же проблемой и после недели моих трасс узнал, что имея ClientAcessPolicy.xml и CrossDomainPolicy.xml в корневом каталоге не будет обслуживаться u R запрос, ClientAcessPolicy.xml и CrossDomianPolicy.xml должно быть отправлено только через службу.

Выполните следующие действия, чтобы решить эту проблему

1. Добавить новое пространство имен в файл iservice1.CS, как показано ниже


[ServiceContract(Namespace = "http://ServiceWCF")]

        public interface IPolicyRetriever
         {
           [OperationContract, WebGet(UriTemplate = "/clientaccesspolicy.xml")]

           Stream GetSilverlightPolicy();

           [OperationContract, WebGet(UriTemplate = "/crossdomain.xml")]

           Stream GetFlashPolicy();
         };


2. Теперь отредактируйте файл service1.SVC-файл с правками,



public class PolicyClass : IPolicyRetriever
        {
        Stream StringToStream(string result)
        {
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml";
            return new MemoryStream(Encoding.UTF8.GetBytes(result));
        }
        public Stream GetSilverlightPolicy()
        {
            string result = @"<!--?xml version=""1.0"" encoding=""utf-8""?-->
                            <access-policy>
                                <cross-domain-access>
                                    <policy>
                                        <allow-from http-request-headers="" *""="">
                                            <domain uri="" *""="">
                                        
                                        <grant-to>
                                            <resource path="" ""="" include-subpaths="" true""="">
                                        
                                    
                                
                            ";
            return StringToStream(result);
        }
        public Stream GetFlashPolicy()
        {
            string result = @"<!--?xml version=""1.0""?-->
                            
                            <cross-domain-policy>
                                <allow-access-from domain="" *""="">
                            ";
            return StringToStream(result);
        }
      }


4. Теперь добавьте оба файла в расположение проекта
5. Лучше, чтобы избежать некоторых проблем, мы можем добавить оба файла в корневую папку также