Прокси-класс недоступен для Windows Phone 7 Ссылка на службу WCF - PullRequest
7 голосов
/ 26 мая 2011

У меня есть существующая служба WCF, которая работает. Я добавил ссылку в Visual Studio 2010 для моего приложения для Windows Phone. Ссылка появляется, и я вижу методы, когда я проверяю свойства этого. Служба использует basicHttpBinding. Кажется, прокси-класс никогда не генерируется. Я не могу сослаться на это (да - я проверяю правильное пространство имен)

Мне известна утилита SlSvcUtil.exe, но она больше не нужна. Любые мысли о том, почему мой прокси-класс не генерируется, но есть ссылка на службу?

Спасибо!

РЕДАКТИРОВАТЬ: Wsdl файл выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ProjectManager" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://tempuri.org/Imports">
      <xsd:import schemaLocation="http://somesite/ProjectManager/ProjectManager.svc?xsd=xsd0" namespace="http://tempuri.org/" />
      <xsd:import schemaLocation="http://somesite/ProjectManager/ProjectManager.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
      <xsd:import schemaLocation="http://somesite/ProjectManager/ProjectManager.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/ProjectManager" />
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="IProjectManagerService_GetProjectList_InputMessage">
    <wsdl:part name="parameters" element="tns:GetProjectList" />
  </wsdl:message>
  <wsdl:message name="IProjectManagerService_GetProjectList_OutputMessage">
    <wsdl:part name="parameters" element="tns:GetProjectListResponse" />
  </wsdl:message>
  <wsdl:message name="IProjectManagerService_GetProjectFiles_InputMessage">
    <wsdl:part name="parameters" element="tns:GetProjectFiles" />
  </wsdl:message>
  <wsdl:message name="IProjectManagerService_GetProjectFiles_OutputMessage">
    <wsdl:part name="parameters" element="tns:GetProjectFilesResponse" />
  </wsdl:message>
  <wsdl:portType name="IProjectManagerService">
    <wsdl:operation name="GetProjectList">
      <wsdl:input wsaw:Action="http://tempuri.org/IProjectManagerService/GetProjectList" message="tns:IProjectManagerService_GetProjectList_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IProjectManagerService/GetProjectListResponse" message="tns:IProjectManagerService_GetProjectList_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="GetProjectFiles">
      <wsdl:input wsaw:Action="http://tempuri.org/IProjectManagerService/GetProjectFiles" message="tns:IProjectManagerService_GetProjectFiles_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IProjectManagerService/GetProjectFilesResponse" message="tns:IProjectManagerService_GetProjectFiles_OutputMessage" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="BasicHttpBinding_IProjectManagerService" type="tns:IProjectManagerService">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="GetProjectList">
      <soap:operation soapAction="http://tempuri.org/IProjectManagerService/GetProjectList" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetProjectFiles">
      <soap:operation soapAction="http://tempuri.org/IProjectManagerService/GetProjectFiles" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ProjectManager">
    <wsdl:port name="BasicHttpBinding_IProjectManagerService" binding="tns:BasicHttpBinding_IProjectManagerService">
      <soap:address location="http://somesite/ProjectManager/ProjectManager.svc" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Ответы [ 4 ]

2 голосов
/ 01 июля 2011

У меня точно такая же проблема. И установка «Исправления инструментов разработчика Windows Phone» решила проблему.

Вот ссылка для скачивания исправления: http://download.microsoft.com/download/6/D/6/6D66958D-891B-4C0E-BC32-2DFC41917B11/VS10-KB2486994-x86.exe

Удачи!

2 голосов
/ 26 мая 2011

Это случилось со мной.

Не уверен, что вызывает это.

Что мне подходит, так это закрыть Visual Studio, снова открыть, щелкнуть правой кнопкой мыши сервис и щелкнуть «Обновить справочник услуг».

1 голос
/ 06 июля 2011

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

1 голос
/ 26 мая 2011

У меня была эта проблема.
Повторное добавление сервиса под другим именем решило проблему один или два раза.
Slsvc работает каждый раз, и с ним гораздо приятнее работать при регистрации в TFS. Не уверен, если это связано с TFS или нет.

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