Служба Azure WCF использует службу Azure WCF - PullRequest
4 голосов
/ 22 ноября 2010

В настоящее время у меня есть решение с помощью службы Azure WCF и проекта Windows Phone 7.Я могу запустить среду разработки локально и перейти по URL-адресу (http://127.0.0.1:81/API/V1.svc) моего сервиса в порядке. Когда я делаю Add Service Reference из приложения Windows Phone, он обнаружит сервис в порядке, но когда я пытаюсь просмотреть методы в сервисеЯ получаю сообщение об ошибке «Невозможно запустить сервер разработки ASP.NET, так как используется порт 50149». Если я нажимаю «ОК», я получаю сообщение «Произошла ошибка при загрузке метаданных с адреса. Убедитесь, что вы ввели действительный адрес». "

Я не совсем понимаю, почему он обнаруживает его на порту 50149, так как я смотрю на него на порту 81, но я попытался использовать порт 81 при добавлении службы, и я получил

Тампроизошла ошибка при загрузке 'http://localhost:81/API/V1.svc'. Невозможно подключиться к удаленному серверу. Невозможно установить соединение, так как целевая машина активно отказала в этом 127.0.0.1:81 Метаданные содержат ссылку, которая не может быть разрешена:' http://localhost:81/API/V1.svc'. Не было прослушивания конечной точкив http://localhost:81/API/V1.svc, который может принять сообщение. Это часто вызвано неправильнымDdress или SOAP действие.Смотрите InnerException, если имеется, для более подробной информации.Невозможно подключиться к удаленному серверу. Невозможно установить соединение, поскольку целевая машина активно отказала ему. 127.0.0.1:81 Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.

Вот мой раздел модели сервиса

<system.serviceModel>
   <services>
     <service name="DocDemon.API.V1">
       <endpoint name="basicHttpBinding" binding="basicHttpBinding" contract="DocDemon.API.IV1" />
     </service>
   </services>
  <behaviors>
   <serviceBehaviors>
    <behavior name="">
     <serviceMetadata httpGetEnabled="true"  />
     <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
   </serviceBehaviors>
  </behaviors>
  <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
   <bindings>

   </bindings>
 </system.serviceModel>

Нужно ли мне определять и указывать конечную точку здесь?

Имеет ли это какое-то отношение к проекту WP7 и к тому, что WCF Azure находится втакое же решение?(Нужно ли запускать WCF при попытке добавить ссылку на службу из приложения WP7?)

Ответы [ 4 ]

1 голос
/ 14 декабря 2010

Я переместил приложение WP7 в его собственное решение, и затем оно смогло определить веб-сервис в порядке, когда это приложение работало в локальной DevFabric.Приложение WP7 просто не смогло найти его, когда они находились в одном решении.

0 голосов
/ 22 ноября 2010

В моем WCF, работающем в Azure, я настраиваю конечные точки в двух местах (мой пример определяет безопасную конечную точку ssl на порту 443):

Первый раз в web.config для определения контрактов конечных точек:

<system.serviceModel>
    <services>
        <service
            behaviorConfiguration="CustomValidationBehavior"
            name="ServiceName">

            <endpoint 
                                binding="wsHttpBinding"
                                bindingConfiguration="MembershipBinding"
                                name="bindingName                                   contract="InterfaceName" />

После этого вы также должны убедиться, что Azure предоставляет ваш сервис через собственные конечные точки в ServiceDefinition.csdef:

<InputEndpoints>
  <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="CertName" />
</InputEndpoints>
0 голосов
/ 02 декабря 2010

Вы не можете использовать ссылку на этот порт, если он не запущен, метаданные не будут найдены.

Я бы сказал, перенесите ваш серверный проект в IIS вместо Casini, так как именно там он будет работать, покаплатформа Azure.У меня были некоторые проблемы с Azure и Casini, которых не было в IIS.

0 голосов
/ 22 ноября 2010

Вы просматривали образцы WCF Azure известные проблемы в галерее кодов MSDN?Есть тонкость вокруг метаданных и необходима настройка поведения.Надеюсь, это поможет.

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