Модераторы: gambit, Kefir, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Silverlight и Web Services, проблемки 
:(
    Опции темы
RuBoris
Дата 20.1.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



Всем добрый день!

Получаю ошибки при использоваии Web service из Silverlight.
Даже самый просто код, создаю вэб службу по умолчанию с таким методом
Код

[WebMethod]
    public string HelloWorld()
    {
        return "Hello";
    }


А в моем Silverlight проекте добавляю ссылку на эту службу и при клике на одну кнопку делаю так:
Код

 protected void Button_Click(object sender, RoutedEventArgs e)
        {
            DateTimeServiceSoapClient service = new DateTimeServiceSoapClient();
            service.HelloWorldCompleted += new EventHandler<HelloWorldCompletedEventArgs>(service_HelloWorldCompleted);
            service.HelloWorldAsync();
            
        }
        
       void service_HelloWorldCompleted(object sender, HelloWorldCompletedEventArgs e)
        {
        }


Ошибку получаю в коде, который создается автоматически (файл Reference.cs):
Код

public SilverlightApplication1.localhost.HelloWorldResponse EndHelloWorld(System.IAsyncResult result) {
                object[] _args = new object[0];
                SilverlightApplication1.localhost.HelloWorldResponse _result = ((SilverlightApplication1.localhost.HelloWorldResponse)(base.EndInvoke("HelloWorld", _args, result)));
                return _result;
            }


Код ошибки такой:
An error occurred while trying to make a request to URI 'http://localhost:1563/SimpleWebService/Service.asmx'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. Please see the inner exception for more details.

Пожалуйста, поделитесь у кого есть какие соображения.

Спасибо.

ЗЫ: Вэб служба сама по себе работает нормально, проверял из консольного приложения.

Это сообщение отредактировал(а) RuBoris - 20.1.2009, 12:26
PM MAIL   Вверх
Gelis
Дата 20.1.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 26.10.2006
Где: Брест

Репутация: нет
Всего: 4



В свойствах проекта для веб сервиса поставь порт как статический и перебилдь проект. Должно помочь. 
Если не поможет, то: http://silverlightuk.blogspot.com/2008/02/...oss-domain.html
PM MAIL   Вверх
RuBoris
Дата 20.1.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



переход на статический порт не помог.
а вот с настройками cross-domain-policy я что-то не понял...как их использовать. Создаю в корневом каталоге вэб сервиса файл crossdomain.xml с таким содержимым

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

этого должно быть достаточно?...на стороне silverlight что-нибудь надо делать?

сейчас ошибка та же самая, что я делаю не так?
PM MAIL   Вверх
Gelis
Дата 20.1.2009, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 26.10.2006
Где: Брест

Репутация: нет
Всего: 4



Мне в свое время с такой же ошибкой помогла установка порта статическим :(
PM MAIL   Вверх
RuBoris
Дата 23.1.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



Хэлп ми плиз!!!! Нужно настроить позарез cross-domain-policy.
Всего один файл нужно настроить небольшой как я понимаю, а ничего не работает!

PM MAIL   Вверх
likegift
Дата 30.1.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



была такая проблема, 2 дня ковырялся. 
если все еще не работает, то могу в архивах покапаться
PM MAIL   Вверх
RuBoris
Дата 9.2.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



Нет, проблему я так и не решил. Но покопавшись в настройках IIS сейчас хотя бы изменилось то, что можно обращаться из SL к вэбслужбе, но только если SL проект запущен в VS, а если запустить отдельно тестовую страницу для SL объекта, то ошибка по-прежнему такая:

------------------------
System.ServiceModel.CommunicationException: An error occurred while trying to make a request to URI 'http://192.168.0.1/MyService/MyService.asmx'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. Please see the inner exception for more details. ---> System.Security.SecurityException ---> System.Security.SecurityException: Security error.
at System.Net.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
at System.Net.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at System.Net.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
--- End of inner exception stack trace ---
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
at MyComp.MyService.MyServiceSoapClient.MyServiceSoapClientChannel.EndGetDynamicParams(IAsyncResult result)
at MyComp.MyService.MyServiceSoapClient.MyComp.MyService.MyServiceSoap.EndGetDynamicParams(IAsyncResult result)
at MyComp.MyService.MyServiceSoapClient.OnEndGetDynamicParams(IAsyncResult result)
at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
------------------------

Что могу делать не так, или делаю что не надо?
PM MAIL   Вверх
likegift
Дата 11.2.2009, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



Цитата(RuBoris @ 9.2.2009,  20:01)
а если запустить отдельно тестовую страницу для SL объекта, то ошибка по-прежнему такая:


попробуй обращаться к сервису из кода сильвера вот таким образом:

Код

  Uri ser_adress = new Uri(App.Current.Host.Source, "../Service1.svc");
            ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client("BasicHttpBinding_Service1", ser_adress.AbsoluteUri);
            proxy."Твойметод"Completed += new EventHandler<"Твойпроект".ServiceReference1."Твойметод"CompletedEventArgs>(proxy_"Твойметод"Completed);
            proxy."Твойметод"Async(параметры);



а то ты когда деплоишь проект, у тебя теряется путь до сервиса, поэтому ИИС начинает гнать про кроссдомен.
и это.. используй wcf - сервис вместо web - сервиса.
PM MAIL   Вверх
RuBoris
Дата 11.2.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



объясните пожалуйста, что такое "BasicHttpBinding_Service1" (параметр endpointConfigurationName)

в мсдн немногосложно (((((:
The name of the endpoint in the application configuration file.

а также:
Use this constructor (ClientBase(string endpointConfigurationName,string remoteAddress)) to determine the target endpoint information from the name of the endpoint in an application configuration file (The target value is located by finding the name attribute of the client <endpoint> element) and the specified address.



Это сообщение отредактировал(а) RuBoris - 11.2.2009, 15:12
PM MAIL   Вверх
likegift
Дата 11.2.2009, 20:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



ну давай по шагам. исходники примера кинул сюда

user posted image
открываем 8ую студию. создаем новый проект TestSilver.

user posted image
удаляем лишние файлы, а тестовую страницу переменовываем в TestPage.

user posted image
добавляем в TestSilverWeb наш новый сервис.

user posted image
обзываем его Service1.
на всякий случай компилириуем

user posted image

и добавляем в сирвилат.

user posted image
здесь жмем кнопку Discover, система находит наш единственный сервис.
мы жмем на него, обзываем, к примеру, ServiceReference и кликаем на кнопку ОК.

user posted image
далее, открываешь файл ServiceReferences.ClientConfig и правишь ссылку. красным я подчеркнул имя, которым мы назовем нашу папку на веб сервере при публикации.
ребилдим наш солюшн и публикуем

user posted image
публикуем наш проект на веб сервер и пробуем запустить отдельно наш Сервис.
пока не запустится -дальшу лезть бесполезно, потому проверяем включена ли анонимная авторизация 
на сервере для нашего веб-приложения MyServiceTest, а так же проверяем работает ли наш пул.

user posted image
если все хорошо, то появляется примерно вот такое окно, после запуска сервиса

user posted image
дальше самое приятное. если все хорошо, то запускаем нашу тестовую страницу и жмем кнопку.




Это сообщение отредактировал(а) likegift - 11.2.2009, 21:20
PM MAIL   Вверх
RuBoris
Дата 13.2.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



спасибо
PM MAIL   Вверх
likegift
Дата 13.2.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 2
Всего: 3



Цитата(RuBoris @ 13.2.2009,  18:06)
спасибо

заработало?
PM MAIL   Вверх
RuBoris
Дата 17.2.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 29.12.2008

Репутация: нет
Всего: нет



да
больше я не запускаю тестовую локальную html страницу, а запрашиваю SL объект с web-сервера)

Это сообщение отредактировал(а) RuBoris - 17.2.2009, 18:20
PM MAIL   Вверх
astikk
Дата 21.2.2010, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.2.2010

Репутация: нет
Всего: нет



Привет! всем, сразу прошу прощения если немножко ошибся топиком, для размещения темы

есть вопрос такого характера: я использую связку Silverlight + .RIA

есть бд на серверной стороне. для неё делаю DomainEntityModel. выбираю базу. таблицы. все как надо

далее создаю DomainEntityClass под мою модель данных.

проблема заключается в том что:

после сборки приложения
в сгеренированном классе на стороне клиента =( у меня отсутствуют методы для работы с моделью =(

что я не так сделал? smile 
PM MAIL   Вверх
Tishka88
Дата 2.10.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.4.2010

Репутация: нет
Всего: нет



Всем доброго дня!!!...та же самая проблема, что у ТС...как можно ее решить, если использовать все таки web service, а не WCF Service???... smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0905 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.