2011-05-26 6 views
7

Tengo un servicio WCF existente que funciona. Agregué una referencia en Visual Studio 2010 para mi aplicación de Windows Phone. Aparece la referencia y veo los métodos cuando reviso sus propiedades. El servicio usa basicHttpBinding. Parece que la clase proxy nunca se genera. No puedo hacer referencia (sí, estoy verificando el espacio de nombres correcto)Clase proxy no disponible para Windows Phone 7 Referencia al servicio WCF

Conozco la utilidad SlSvcUtil.exe, pero se supone que ya no es necesario. ¿Alguna idea de por qué mi clase proxy no se está generando pero la referencia del servicio está ahí?

Gracias!

EDIT: archivo WSDL es el siguiente:

 
<?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> 
+0

Si selecciona la opción "Proyecto -> Mostrar todos los archivos" al seleccionar el proyecto WP7 y expande el icono de referencia del servicio, ¿ve el archivo reference.cs? – carlosfigueira

+0

no, solo los archivos wdsl, disco, svcinfo, svcmap y xsd. –

+0

¿Hay algo en el archivo svcmap (IIRC el archivo .cs se muestra debajo de eso)? Si no, ¿hay alguna advertencia/error en VS cuando agrega la referencia? De lo contrario, puede valer la pena intentar usar slsvcutil para generar un archivo, incluso si es solo para saber si emite algún error/advertencia. – carlosfigueira

Respuesta

1

Curiosamente, un mes después comenzó a funcionar sin otras instalaciones. Es posible que un reinicio reciente lo haya "arreglado", pero también pensé que había reiniciado antes, aunque quién sabe. De cualquier manera está funcionando.

+0

lamentablemente, no me funciona de nuevo. – CuiPengFei

2

Esto ha sucedido a mí.

No estoy seguro de qué lo causa.

Lo que funciona para mí es cerrar Visual Studio, vuelva a abrir, haga clic derecho en el servicio y haga clic en Actualizar la referencia del servicio.

+0

ya .. intenté todo eso antes:) –

+0

Esto es lo que funcionó para mí. – Jermismo

1

Tuve este problema.
Agregar el servicio otra vez con otro nombre me solucionó el problema una o dos veces.
Slsvc funciona todo el tiempo y es mucho mejor trabajar con él cuando se registra en TFS. No estoy seguro si esto está relacionado con TFS o no.

+0

intenté eso también en el pasado ... no ir. slsvc Quería mantenerme alejado solo porque, en mi opinión, el IDE debería hacer esto bien, excepto en casos extremos. este caso es muy básico. –

2

Tengo exactamente el mismo problema. E instalar el "Windows Phone Developer Tools Fix" resolvió el problema.

Aquí está el enlace para descargar la revisión: http://download.microsoft.com/download/6/D/6/6D66958D-891B-4C0E-BC32-2DFC41917B11/VS10-KB2486994-x86.exe

Buena suerte!

+1

hmm ..Lo intentaré, pensé que esto ya estaba instalado, pero lo comprobaré. ¡Gracias! –

+0

¿qué versión de VS estás usando? ¿Profesional? – CuiPengFei

+1

Ultimate: el problema se solucionó de forma interesante. +1 sin embargo, dado que esta solución funcionó para usted –