WCF RIA дает EndpointNotFoundException в Azure при доступе с WP7 - PullRequest
0 голосов
/ 08 октября 2011

Я целый день боролся с проблемой службы доменов WCF RIA.

Я пишу сервисную библиотеку WCF RIA, которая развернута в Windows Azure. Я получаю к нему доступ через Silverlight и Windows Phone 7 Client . У меня есть два ASP.NET-проекта как две веб-роли в моем облачном приложении, которые действуют как две разные конечные точки.

Первый обеспечивает доступ через SSL для клиента Silverlight.

Второй - простая конечная точка, без аутентификации для клиента WP7. Он работает на порту 8080.

На моем местном cassini все работает отлично. Я могу получить доступ к услуге с обоими клиентами. В облаке я могу использовать только клиент Silverlight. Когда я пытаюсь связаться с сервисом с помощью приложения WP7, я получаю:

System.ServiceModel.EndpointNotFoundException wurde nicht behandelt. Сообщение = Нет конечной точки прослушивания в http://myapp.cloudapp.net:8080/Services/MyRIAServiceLib-Web-MyService.svc/soap, которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. См. InnerException, если имеется, для получения более подробной информации.

Внутреннее исключение имеет тип System.Net.WebException и говорит:

Удаленный сервер вернулся и ошибка: NotFound

Я добавил автоматическую ссылку ServiceReference в свое приложение WP7, чтобы подключиться к службе WCF. Когда я это делаю, VS2010 успешно распознает Сервис и генерирует код, чтобы сделать его пригодным для использования. Это должно означать, что услуга доступна и может быть найдена, верно? Когда я захожу на http://myapp.cloudapp.net:8080/MyRIAServiceLib-Web-MyService.svc через браузер, я вижу обычное сообщение «Вы создали сервис». - Страница.

Я добавил все dll в качестве локальных копий со значением true, которое может отсутствовать в облаке, но, возможно, я пропустил некоторые. Мой web.config выглядит так:

<configSections>
  <sectionGroup name="system.serviceModel">
    <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </sectionGroup>
</configSections>
<system.serviceModel>     
<domainServices>
  <endpoints>
    <add name="soap" type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </endpoints>
</domainServices>  
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"    multipleSiteBindingsEnabled="true" />
</system.serviceModel> 
<system.webServer>
 <validation validateIntegratedModeConfiguration="false" />
   <modules runAllManagedModulesForAllRequests="true">
     <add name="DomainServiceModule" preCondition="managedHandler" 
       type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   </modules>
 </system.webServer>
 <system.web>
   <customErrors mode="Off"/> 
   <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
   <httpModules>
   <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   </httpModules>
 </system.web> 

Любая помощь, пожалуйста? Я застрял и прочитал и искал об этой проблеме в течение нескольких часов.

Я могу получить доступ к машине Azure с помощью RDP. Как я могу отладить / отследить эту проблему? Я буду рад использовать трассировку Fiddler / WCF, если кто-нибудь сможет привести меня на правильный путь.

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Проверьте 2 вещи:

1) Убедитесь, что ваш прокси настроен правильно.

2) Если вы используете SSL, убедитесь, что вы установили сертификаты на телефон / эмулятор.

Ошибка, которую вы видите, является общей, для которой wcf говорит, что не удается установить сетевое соединение.

0 голосов
/ 04 ноября 2011

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

...