none
Silverlight 4 y WCF RIA RRS feed

  • Pregunta

  • Desarrollé una aplicación con Visual Studio 2010, Silverlight 4 y conecté la base SQL Server con WCF RIA.
    En Visual Studio funciona todo bien, pero cuando lo subo al servidor ( tiene Windows server 2006 IIS 6) me da el siguiente mensaje de error:

    System.Windows.Ria.DomainOperationExceptios:Load operatios failed for Query
    "GetTabla". El servidor remoto devolvió un error: NotFound

    Ya revisé el string de conexión y está ok.

    Alguien sabe que puede pasar  y como resolverlo?.
    Desde ya gracias.
    José
    viernes, 12 de marzo de 2010 18:05

Todas las respuestas

  • Hola joselaks.

    Parece que el error esta vinculado con el servicio WCF, ¿esta en el mismo dominio? debe estar en el mismo dominio que el servidor, si no, se debe implementar un archivo de politica de seguridad.

    Por otra parte, asegurate de que el servidor SQL admite conexiones remotas bajo TCP (por defecto esta deshabilitado).

    ¿Todo esta en el mismo servidor?

    Saludos
    David González
    lunes, 15 de marzo de 2010 8:10
  • Gracias David por la respuesta.
    Todo está en el mismo servidor.
    Por las dudas, lo que hice es pedirle a la empresa en la que tengo contratado el servidor dedicado, que me pase a Windows server 2008 R2 web edition.
    O sea, paso a IIS 7.5.
    Como ya probé todo y sigue sin funcionar, voy a esperar al 12 de abril que sale la version oficial de visual studio 2101, y ahi si, con servidor con IIS 7.5, visual studio relese oficial, silverlight 4 con WCF Ria...Framework 4 ta no RC sino release.......vuelvo a probar todo y te cuento.
    Si a pesar de todo, sigo sin logarlo, te voy a preguntar a ver si me podes ayudar.
    Saludos cordiales,
    José
    martes, 16 de marzo de 2010 12:37
  • Hola joselaks.

    Si tienes windows Vista  o 7 puedes crearte tu propio sitio web en el IIS 7/7.5.

    con lo que puedes usarlo para probarlo.


    Saludos
    David González
    martes, 23 de marzo de 2010 7:27
  • Bueno, ahora con mas elementos, continúo con el problema.

    Lo vuelvo a plantear: Desarrollo sobre Silverlight 4 con RIA, funciona perfectamente en el entorno de Visual Studio 2010, pero cuando lo trato de ejecutar fuera del entorno da error.

    Para ejemplo, hice una sencilla función en el DomainServices que devuelve un string:

     

    [Invoke]
            public string Dato1(string recibo)
            {
                return recibo;
            }

     

    O sea, solo devuelve lo recibido.

    Y en la aplicación silverlight, generé un botón que ejecuta el siguiente código:

     private void Button_Click(object sender, RoutedEventArgs e)
        {
            context.Dato1("va valor", funcio, null); 
        }
    
        private void funcio(InvokeOperation args)
        {
          if (args.Error == null)
          {
            MessageBox.Show(args.Value.ToString());
          }
          else
          {
            MessageBox.Show(args.Error.Message.ToString());
          }
        }

    Al ejecutar este código dentro de Visual Studio, muestra una ventana con el valor "va valor"

    Pero si ejecuto este código en el browser local o accediendo via IP desde afuera del servidor, siempre muestra el siguiente mensaje de error: Invoke operation "Dato1" failed. El servidor remoto devolvió un error: NotFound"

    Evidentemente Visual Studio genera condiciones que no puedo enular fuera de su entorno.

    Agradezco alguien me ayude, porque estoy trabado en desarrollar, ya que no fucniona al hacer el deploy.

    José.

    jueves, 13 de mayo de 2010 15:54
  • Hola joselaks.

    Si lo has probado en VS y funciona bien, te puedo asegurar casi al 100% que el servicio esta bien programado y se despliega correctamente.

    Lo que nos queda (y esto es en la mayoria de los casos de despliegues) es revisar los enlaces.

    entonces vamos a ver entorno en el que trabajamos para ir eliminando cosas:

    supongo que tienes un servidor externo basado en windows en el cual has creado una aplicacion web aspnet bajo IIS que es la que suministra la aplicacion silverlight. En el mismo servidor, tienes implementado un servicio WCF que es al que se accede desde la aplicacion Silverlight.

    ¿esto es asi?

    Si es asi, es posible que el problema este en la configuracion del extremo del cliente silverlight para la conexion al servicio WCF.

    ¿puedes poner el codigo del servicio en el archivo .config de silverlight para ver como tienes configurado los endpoint?


    Saludos
    David González
    jueves, 13 de mayo de 2010 16:11
  • Hola David,

    Gracias por contestar.

    En cuanto a la configuración del servidor, he usado el el IIS Manager para crear las condiciones de ejecución. Bajo esas condiciones, la apliacación funciona bien en todo menos con RIA. Para asegurarme sobre RIA, he configurado las .dll con copia local "True".

    En cuanto al archivo web.config, te lo adjunto a continuación:

     

    <?xml version="1.0" encoding="utf-8"?>
    <!--
     For more information on how to configure your ASP.NET application, please visit
     http://go.microsoft.com/fwlink/?LinkId=169433
     -->
    <configuration>
     <system.webServer>
      <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>
      <validation validateIntegratedModeConfiguration="false" />
     </system.webServer>
     <system.web>
      <httpModules>
       <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </httpModules>
      <compilation debug="true" targetFramework="4.0">
       <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
       </assemblies>
      </compilation>
     </system.web>
     <connectionStrings>
      <add name="DataObraAdminEntities" connectionString="metadata=res://*/DataObra_Admin.csdl|res://*/DataObra_Admin.ssdl|res://*/DataObra_Admin.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=CL-T187-2TR55N\DATA001;Initial Catalog=DataObraAdmin;Persist Security Info=True;User ID=jose;Password=mipass;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
     </connectionStrings>
     <system.serviceModel>
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
       multipleSiteBindingsEnabled="true" />
     </system.serviceModel>
    </configuration>

    Un saludo,

    José

     

    jueves, 13 de mayo de 2010 16:31
  • Hola joselaks.

    Has puesto el webconfig del servidor. Si el servidor expone bien el servicio (ya que funciona desde el), lo mas probable es que el cliente no se conecte correctamente al servidor, si lo has creado en el servidor, te habra puesto las cadenas desde el mismo y las tienes que modificar al sacar el cliente del servidor.

    En la aplicacion silverlight, deberas de tener un archivo .config que contiene la configuracion de los enlaces ¿puedes poner ese codigo?


    Saludos
    David González
    jueves, 27 de mayo de 2010 12:22
  • Hola David,

    Gracias por seguir mi "caso".

    No encuentro otro archivo .config en mi aplicación, que no sea el web.config. Hay otro ? donde lo encuentro para copiarlo y pegártelo en un post ?

    José

    jueves, 27 de mayo de 2010 12:46
  • Hola joselaks.

    Vale, no me acordaba que eran servicios WCF RIA. 

    ahora que me he instalado el SO nuevo (que ya el tocaba), tengo que hacer algunas pruebas al respecto con las maquinas virtuales, asi que a lo largo de estos dias mientras lo pruebo todo me fijare en ciertos detalles de funcionamiento para ver si te puedo ayudar.

    Si mientras, encuentras la solucion, la comentas.

     


    Saludos
    David González
    jueves, 27 de mayo de 2010 15:35
  • Hola David,

    Gracias por continuar este tema. Me será de mucha ayuda tu aporte, porque sigo sin encontrarle solución.

    Concretamente, no logro que un servicio WCF Ria funcione sobre una plataforma Windows Server 2008 R2. Sospecho que el problema es la configuración del IIS 7.5, ya que la aplicación funciona cuando la pruebo en Visual Studio 2010 y también cuando la subo a servidores compartidos, como DiscountASP, etc. Pero tengo que usuarla en mi propio servidor dedicado y no encuentro instrucciones concretas que hagan que la aplicación corra correctamente.

    Espero entonces con ansiedad tu aporte,

    José

    domingo, 30 de mayo de 2010 17:48
  • El error que te regresa Silverlight es generico, si quieres saber realmente que esta pasando te recomiendo que emplees Fiddler para hacer un tracer  de tu servicio
    martes, 1 de junio de 2010 18:15
  • Gracias germandb,

    Lo que aparentemente pasa es que mi IIS 7.5 no permite que se genern los archivos .svc

    Concretamente, cuando pruebo la versión sobre Visual Studio, puedo acceder al servicio mediante " http://localhost:49711/Tutorial1-Web-NorthwindDomainService.svc"

    Pero si reemplazo "localhost:49711" por el dominio, no encuentra el archivo .svc

    Es esto una pista de lo que pasa ?

    Revisé en mi IIS 7.5 la definición de MIME, etc y parece estar todo bien. Pero he subido la aplicación a un servidor compartido ( ASPHOsting) y ahi probé ver el servicio .svc y funcionó. Y ahí si funciona la aplicación.....

    O sea....Mi Microsoft server 2008 R2 y su IIS 7.5 tienen algún problema de configuración por lo que no puedo correr ahí aplicaciones RIA Service.

    Alguna ayuda por favorrrrrr.

    José

    martes, 1 de junio de 2010 18:32
  • Hola joselaks.

    Mientras dispongo de algo de tiempo te comento algo (no vaya a ser que sea por esto).

    he oido que el server2008 es propio (o sea, lo has montado tu). Bien, el 2008 aun no lo he tocado, pero en los sistemas anteriores XP, 2003, y creo recordar que winVista tambien, es necesario registrar los servicios WCF, del mismo modo que en XP hay que registrar las extensiones ASP.NET.

    Bien, para los sercivios WCF, se debe abrir una consola de comandos, ir hasta la ruta: "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation" (la ruta es de un XP, no se si sera equivalente) y una vez en ella ejecutar el comando:

    ServiceModelReg.exe - i

    esto registrara en el IIS WCF para poder ser usado. ( a ver si fuese esto lo que te falta).

     


    Saludos
    David González
    miércoles, 2 de junio de 2010 6:39
  • Tal como David te sugiere revisa que este bien configurado el iis, corre estos dos comandos en la consola con permisos de administrador y nos comentas si soluciona tu problema.

    •  "c:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i"
    •  "c:\windows\Microsoft.NET\Framework\v4.0.30319\ServiceModelReg.exe -i"
    miércoles, 2 de junio de 2010 7:47
  • David y Germandb,

    He solucionado el problema publicando desde Visual Studio mediante el método "Web deploy".

    Por un lado me pone contento, porque necesitaba solucionar esto urgente, pero por el otro finalmente no se cual era la causa del problema, para que no vuelva a repetirse y ayudar a quienes les pase lo mismo.

    He votado como util los aportes de ustedes porque me han ayudado mucho, y trataré de investigar este tema un poco mas para llegar a alguna conclusión. Por empezar, no se que hace Visual Studio cuando publica mediante el método "Web deploy ". Alguno lo sabe ?

    Mil gracias nuevamente a los dos.

    • Propuesto como respuesta David_González miércoles, 2 de junio de 2010 15:32
    miércoles, 2 de junio de 2010 12:20
  • aquí encontraras lo que necesitas saber de la manera en que opera Web Deploy con VS 2010 y IIS

    http://blogs.msdn.com/b/webdevtools/archive/2009/02/04/web-deployment-with-vs-2010-and-iis.aspx

     

    Salu2

    • Propuesto como respuesta David_González miércoles, 2 de junio de 2010 15:32
    miércoles, 2 de junio de 2010 13:25
  • Hola saludos,  a mi me esta pasando lo mismo,  pero no logro solucionarlo,  he probado todo

    este Link

    http://websaas.addingtechnology.es/BlogSaaS/Lists/Entradas%20de%20blog/Post.aspx?ID=3

     

    he probado todo lo que dice en esta pagina

    http://social.msdn.microsoft.com/Forums/es-ES/wpfes/thread/2cb953d9-d0dd-4113-ba4e-3c4b448ae1f8?prof=required

     

    Y nada Ayuda plis,  no he podido publicar mi proyecto  bajo VS2010 con Silverligth WCF silverligth enabled y IIS.  ayuda

     


    NInoska
    lunes, 14 de junio de 2010 14:40
  • Hola Ninoska.

    ¿Donde lo quieres publicar?, ¿el sistema es tuyo?, ¿que SO tiene?.

    estamos hablando de WCF RIA ¿no?, para ello no hace falta ninguna configuracion en un principio, asegurate de tener instalados las extensiones WCF como se ha explicado anteriormente.


    Saludos
    David González
    martes, 15 de junio de 2010 8:05
  • Hola gracias por responder,  Tengo xp el sistema es mio y lo quiero publicar en mi IIS.

     

    Estoy trabajando de la siguiente forma:  Cree un proyecto WCF Service library donde tengo mis servicios con sus contratos y las conexiones a la BD con LINQ accesando a sql 2008.

       Con respecto a este paso ya he solucionado publicarlo en el IIS y se publica muy bien,  el problema que tenia era que mi IIS se desconfiguro o algo asi,  porque yo colocaba localhost en el explorador y no aparecia nada.

    Ahora bien cree otro proyecto tipo Silverligth navigation hospedado en una aplicacion web de tipo asp.net  cosa que hace VS2010 automatico,  en esta aplicacion tengo mi cliente que es donde tengo mis paginas y en el servidor web tengo el crossdomainpolicy.xml y la pagina que inicia todo el proyecto.

    Ahora bien he agregado referencias a los servicios publicados en el IIS mencionado anteriormente y todo va bien,  el problema se me presenta a la hora de publicar en el IIS de mi equipo la aplicacion completa el error que me manda es NOt FOUNT,  he leido bastante  y como en este foro indican usar el fiddler para ver el error pero la verdad no he conseguido el paso a paso de como utilizarlo asi que utilice el wcftestclient y el error que me arroja es anivel de permisologias a los usuarios para el acceso al servicio y a las tablas de mi bd,  ahora bien eso lo descubri fue hoy estoy documentandome a ver como solucionar lo de las permisologias a ver si ya puedo accesar a mi aplicacion a sus servicios y a las tablas de la BD.

     

    Gracias Gracias


    NInoska
    viernes, 18 de junio de 2010 23:00
  • Hola Ninoska.

    Vale, yo aqui entiendo que no haces uso de WCF RIA Services ¿no?.

    Directamente desde silverlight haces uso de los servicios WCF sin usar RIA Services ¿esto es correcto?.

    Vale, asegurate de tener instalado WCF en el IIS como se ha comentado mas arriba, luego, mira las conexiones de los servicios WCF, tanto en el archivo de configuracion de silverlight como en el webconfig del servidor, ya que ambos extremos deben estar correctamente configurados.

    Luego puedes probar a depurar el servicio WCF a ver si se realiza la llamada correctamente, esto lo puedes realizar escribiendo lo siguiente en el webconfig (fijate solo en la seccion diagnostic), esto te crea un log que puedes consultar mediante la herramienta de VS para depurar WCF

    	<system.serviceModel>
      
      <diagnostics>
       <messageLogging logEntireMessage="true"
         maxMessagesToLog="300"
         logMessagesAtServiceLevel="false"
         logMalformedMessages="true"
         logMessagesAtTransportLevel="true" />
      </diagnostics>
      
    		<bindings>
    			<basicHttpBinding>
    				... bindings ...
    			</basicHttpBinding>
    		</bindings>
    		<client>
    			.. endpoints ...
    		</client>
    	</system.serviceModel>
     
     <system.diagnostics>
      <sources>
       <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
        <listeners>
         <add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
          initializeData="c:\Temp\WcfMessage.log" />
        </listeners>
       </source>
      </sources>
      <trace autoflush="true" />
     </system.diagnostics>

    ya me contaras si vamos por buen camino

     

     


    Saludos
    David González
    lunes, 21 de junio de 2010 12:58
  • Hola Ninoska.

    ahora que ha salido el tema, queria comentar las diferencias basicas entre el crossdomainpolicy.xml y el clientaccesspolicy.xml.

    en esta pagina se explica la configuracion de ambos:

    http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx

    pero la mayor diferencia, es que el crossdomainpolicy es generico para todos los dominios, se especifica que se puede acceder desde cualquier dominio, sigue usandose por la compatibilidad con flash, pero para silverlight yo recomiendo el uso de clientaccesspolicy, ya que este es mas especifico y se puede configurar para el acceso desde un dominio concreto o un directorio, de modo que tiene un mayor control de la seguridad permitiendo el acceso desde recursos especificos.


    Saludos
    David González
    jueves, 24 de junio de 2010 9:14
  • Hola David gracias por responder,  te cuento que:

     

    1.  en respuesta a tu pregunta no uso WCF ria por los momentos solo estoy trabajando con el WXF habilitado para silverligth.

    2.  Tengo instalado el WCF en el IIS.

    3.  este es mi webconfig.

     


    NInoska
    lunes, 13 de septiembre de 2010 12:30
  • <?xml version="1.0"?>

    <configuration>

     

    <connectionStrings>

    <add name="SIGEDARCConnectionString"

    connectionString="Data Source=PPL-GYMGKK1-C\SQLEXPRESS;Initial Catalog=MIBD;Integrated Security=True"

    providerName="System.Data.SqlClient" />

    <add name="ArchivoInactivoConnectionString" connectionString="Data Source=PPL-GYMGKK1-C\SQLEXPRESS;Initial Catalog=MiotraBD;Integrated Security=True"

    providerName="System.Data.SqlClient" />

    </connectionStrings>

    <system.web>

    <compilation debug="true" targetFramework="4.0" />

    </system.web>

    <system.serviceModel>

    <behaviors>

    <serviceBehaviors>

    <behavior name="">

    <serviceMetadata httpGetEnabled="true" />

    <serviceDebug includeExceptionDetailInFaults="false" />

    </behavior>

    </serviceBehaviors>

    </behaviors>

    <bindings>

    <customBinding>

    <binding name="servidor.IserviceARCI.customBinding0">

    <binaryMessageEncoding />

    <httpTransport />

    </binding>

    <binding name="servidor.wsSIGEDARC.customBinding0">

    <binaryMessageEncoding />

    <httpTransport />

    </binding>

    </customBinding>

    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"

    multipleSiteBindingsEnabled="true" />

    <services>

    <service name="servidor.IserviceARCI">

    <endpoint address="" binding="customBinding" bindingConfiguration="servidor.IserviceARCI.customBinding0"

    contract="servidor.IserviceARCI" />

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    </service>

    <service name="servidor.wsSIGEDARC">

    <endpoint address="" binding="customBinding" bindingConfiguration="servidor.wsSIGEDARC.customBinding0"

    contract="servidor.wsSIGEDARC" />

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

    </service>

    </services>

    </system.serviceModel>

    </configuration>


    NInoska
    lunes, 13 de septiembre de 2010 12:31
  •  

    4.  este es el config en el cliente

     

    <configuration>

     

    <system.serviceModel>

    <bindings>

    <customBinding>

    <binding name="CustomBinding_wsSIGEDARC">

    <binaryMessageEncoding />

    <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />

    </binding>

    <binding name="CustomBinding_IserviceARCI">

    <binaryMessageEncoding />

    <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />

    </binding>

    </customBinding>

    </bindings>

    <client>

    <endpoint address="http://localhost:81/wsSIGEDARC.svc" binding="customBinding"

    bindingConfiguration="CustomBinding_wsSIGEDARC" contract="MyServiceSigedarc.wsSIGEDARC"

    name="CustomBinding_wsSIGEDARC" />

    <endpoint address="http://localhost:81/IserviceARCI.svc" binding="customBinding"

    bindingConfiguration="CustomBinding_IserviceARCI" contract="ServiceAI.IserviceARCI"

    name="CustomBinding_IserviceARCI" />

    </client>

    </system.serviceModel>

    </configuration>


    NInoska
    lunes, 13 de septiembre de 2010 12:31
  •  Fijate ya WCF y ServiceModelReg estan instalados en mi IIS  uso el IIS 6.0,  estoy trabajando sobre windows xp,   el proyecto esta realziado bajo VS2010, con el cliente totalmente en Silverligth 4.  el servidor  es una aplciacion asp.net que me crea automaticamente el VS,  uso bd sql 2008 y los servicios son wcf enabled silverligth,  ahora bien ya cree el directorio virtual en el IIS, le configure los mimetypes,  le di los permisos a los usuarios que se conectaran al directorio raiz del IIS,  en cuanto a sql tambien configure  los permisos al usuario aspnet y le di los permisos a los usuarios que se logearan en la aplicacion,  el logeo es controlado por mi ya que yo cree la pantalla de logeo y busco en la BD a los usuarios autorizados.

    Publico bien en el IIS ya que accedo a la Aplicacion bien pero cuando la aplicacion debe conectarse a la bd para buscar informacion lo que es claro que debe accesar al servicio para hacerlo,  me manda un error notfound.

     

    bueno gracias de verdad por tu ayuda,  no habia podido responder porque se me habia olvidado mi clave de ms,  pero estare pendiente gracias de nuevo.

     

    Ninoska


    NInoska
    lunes, 13 de septiembre de 2010 12:31
  • Hola Ninoska.

    Lo primero que hay que hacer es encontrar el foco del error.

    1.- abre un navegador e inserta en la URL (http://localhost:81/wsSIGEDARC.svc) esta es la direccion de tu servicio WCF que esta insertada en el endpoint de tu configuracion de silverlight. Si te sale una pantalla con informacion, el servicio esta desplegado correctamente, de modo que yo pondria un breakPoint en la funcion que llames del servicio para ver si para el depurador y ver como conecta con la BBDD y demas.

    2.- en caso de que no se haya encontrado la pagina, significa que el servicio no esta correctamente desplegado o la direccion del servicio no es correcta.

    - asegurate de que la direccion es correcta

    - cambia localhost por la IP (en servidores 2003 server es necesario en algunas configuraciones, o bien acceder desde fuera del servidor).

    - el puerto 81 es un puerto bajo, asegurate que no lo esta usando ningun otro servicio (generalmente se suelen usar puertos superiores al 1500 en Windows para asegurarse que ninguna otra aplicacion usa ese puerto) 

    - IMPORTANTE: asegurarse que en el servicio WCF tambien se tiene el atributo 'aspNetCompatibilityEnabled', se tiene que establecer en la clase del servicio el siguiente atributo:

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

     

    Y bueno, en general es ir eliminando cosas. Ya me contaras como te va.

     


    Saludos
    David González
    MCP.
    Visita mi Blog en: http://www.dgzornoza.com/
    martes, 14 de septiembre de 2010 11:13
  • Hola David te cuento ayer por ensayo y error he conseguido el problema, pero almismo tiempo realice una modificacion,  la modificacion es la siguiente he creado un proyecto donde alojo los servicios de silverligth en el web config configure el dns de los endpoint a localhost,  y cree otro proyecto con el cliente en silverligth hospedado en un servidor aspnet(esto lo crea VS2010 automatico).  bueno haciendo esto cree dos directorios cirtuales en el IIS con todo lo que hay que configurar alli y ademas en un directorio publico el proyecto que tiene los serviciso WCF enabled Silverligth y en el otro directorio publico el proyecto cliente y todo funciona de maravilla ademas de no olvidar el archivito xml clienteaccespolicy,  el problema era lo smimetypes usaba solo tres y consegui una pagina  donde estaban mas mimetypes para silverligth con IIS los use y  wala  la solucion lo unico que queda mal es que al modificar el proyecto de los servicios y publicar de nuevo todo va bien pero si modifico el cliente y lo publico de nuevo en el iis no funciona debo publicar primero el proyecto cliente y luego el de los servicios para que todo vaya bien.

     

    Coloco la parte del webconfig de los servicios por si sirve de ayuda para otra persona que le ocurra lo mismo que a mi:

    <

     

     

    host>

    <

     

     

    baseAddresses>

    <

     

     

    add baseAddress="https://localhost/ServidorSigedarc" />

    </

     

     

    baseAddresses>

    </

     

     

    host>

     

    y los mimetypes que me sirvieron a mi son los siguientes:

    .aplication

    .deploy

    .manifest

    .xaml

    .xbap

    .xps

     

     


    NInoska
    martes, 14 de septiembre de 2010 12:11
  • ah y mil gracias por tu ayuda,   dia a dia estudio esta area del foro porque quiero aprender WCF ria vamos a ver como me va cuando comience a aplcairlo en la practica bueno mil gracias y seguiremos en contacto
    NInoska
    martes, 14 de septiembre de 2010 12:12
  • Hola Ninoska.

    Estooy haciendo un nuevo articulo en mi blog para publicar proyectos silverlight, pero hasta que lo termine puedo avanzar algun truquillo a tener en cuenta.

    en un principio los mimetypes solo son para que el servidor IIS sepa como tratar cierto tipo de archivo, en nuestro caso, en silverlight, el archivo es un .xap y es el unico que se necesita para desplegar un proyecto silverlight, el mimetype .xbap es para los proyectos wpf de navegador (proyecto wpf browser) y el .xps es un documento electronico basado en xml (no se para que te puede servir).

    bueno, el truco esta en que esto solo define que puede servir el IIS, pero a el le da lo mismo el tipo de documento de igual modo que la extension de cualquier documento solo sirve para indicar al SO que tipo de aplicacion debe abrirla y para nada mas.

    Bien una vez comentado lo anterior, si por ejemplo tienes un servidor contratado que no soporta el mimetype de silverlight .xap podrias pensar que ya la has cagado y el servidor no te vale ya que no puedes insertar mimetypes en servidores contratados (a no ser que sea dedicado y tuyo).

    TRUCO:

    De modo que en estos casos, al fin y al cabo la aplicacion silverlight se sirve por streaming, con lo que para enviarla al cliente tan solo tienes que cambiar la extension del archivo .xap por otra que envie el servidor por streaming como .jpg, .zip, etc. 

    Yo lo he probado con un monton de extensiones y en general todas las que pertenezcan a recursos que pueda enviar el servidor mediante estreaming son validas.

    de modo que en la pagina HTML donde creas el tag <object>, en el src tienes que establecer el nombre del arhivo .jpg, zip, etc que contiene la aplicacion silverlight y te funcionara correctamente.


    Saludos
    David González
    MCP.
    Visita mi Blog en: http://www.dgzornoza.com/
    martes, 14 de septiembre de 2010 16:49
  • hola de nuevo david,  gracias por la informacion  en cuanto a tu blog gracias por aportes como ese espero que toques la impresion con silverligth para ir aprendiendo ya que la misma a mi me ha servido  pero me ha dado cierttos detalles que te pueden servir para que los coloques en tu blog y puedas ayudar a otros como yo,  que se esten iniciando en silverligth.,  gracias
    NInoska
    sábado, 18 de septiembre de 2010 14:17
  • Hola David:

     

    He revisado tu blog pero no he encontrado el articulo. Me parecen muy interesantes para gente como yo los artículos que tiene publicados.

    Estoy haciendo mis primeros pinitos en desarrollo en Silverlight, he implementado un proyecto Silverlight Business Aplicantion con sus Ria Services de acceso a BD. En entorno de desarrollo funciona sin problema, ahora intento publicarlo y no me aclaro, soy novatilla en esto de las aplicaciones web, ya que hasta ahora he estado desarrollando en entorno de escritorio .NET con c#. Intento publicar en un hosting de windows con SQL Server 2008.

     

    Estos son los pasos que he seguido:

    1)      Crear la BD del proyecto en el hosting de Windows con SQL Server 2008 Express, exactamente con la misma estructura y datos
    2)      En el proyecto en la parte .Web en el  archivo Web.Config  en la sección connectionString he cambiado la cadena de conexión con los nuevos parámetros que en hosting me informa.
    3)      He Generado la aplicación de tipo Realise
    4)      He cogido todo el contenido de la carpeta bin/resalise del proyecto silverlight y la he subido por ftp al hosting
    5)      He configurado en el hosting que la pagina de entrada es TestAplication.html

     

    Al acceder me aparece la pagina principal pero con un error de accesos al servicio web.

     

    Gracias por tu ayuda, estoy un poco perdida

    jueves, 4 de noviembre de 2010 11:39
  • Hola

    David Desearia que me ayudaran a solucionar el problema del IIS7 con RIA puesto que no me sale la conexiona a la Base de Datos ni ejecutándolo por

    localhost, leyendo e pensado que hay problemas con la configuración del IIS7, pero no entiendo como se raliza esto

    Gracias

    domingo, 5 de diciembre de 2010 22:15
  • Hola Luis.

    Cual es el problema, ¿solo la conexion?, ¿te puedes conectar al servicio RIA y al realizar la consulta no funciona por la conexion?.

    ¿Tienes algun error o algo para mostrar?.

    En un principio, no hace falta configurar nada especial en el IIS 7 siempre y cuando ya tengas instaladas las extensiones aspnet.

    ¿la BBDD es sql server y esta en un servidor en el mismo pc que el IIS?, asegurate que te puedes conectar mediante la cadena de conexion que tienes establecida, tiene que ser de sql server, no vale autenticacion de windows para la cadena de conexion (a no ser que dispongas de un directorio activo


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    martes, 7 de diciembre de 2010 19:45
  • Gracias David

     

    Ya puede conectarme,

    Otra cosa, como es posible utilizar los RollBack de los insert y update en RIA services

    jueves, 9 de diciembre de 2010 14:41
  • Hola Luis.

    Nunca he necesitado usar rollbacks sobre RIA services, pero te dejo un par de links a ver si te sirven:

    http://mrpanot.wordpress.com/

    http://weblogs.asp.net/fredriknormen/archive/2009/12/29/wcf-ria-services-domainservice-life-cycle-and-adding-transactions.aspx

     


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    jueves, 9 de diciembre de 2010 19:34
  • Gracias David

     

    Otra cosa, a un datagrid de Silverlight 4 se le pueden incluir filas Durante el diseño o la ejecución y de ser así como seria?

    Gracias

    jueves, 9 de diciembre de 2010 20:55
  • Hola Luis.

    Realmente un datagrid, es una representacion visual de un contexto de datos, en si no debes añadir filas al grid, si no, que debes añadirla al contexto de datos y se vera reflejado en el grid.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    viernes, 10 de diciembre de 2010 18:32
  • Gracias

    David

    Y para poder aumentar una fila vacia en el momento de ejecución?

    Gracias,

     

    lunes, 13 de diciembre de 2010 16:07
  • Hola Alejandro:

    no se que quieres decir con aumentar una fila vacia, pero si lo que quieres es editar, puedes usar la funcion 'BeginEdit' (creo recordar).

    De todas formas te paso un post donde tratamos el uso del datagrid bastante extenso donde podras encontrar mucha informacion al respecto:

    http://social.msdn.microsoft.com/Forums/es-ES/wpfes/thread/8e456eb2-95d8-46e7-bb03-8200bb1f33b6

     


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    lunes, 13 de diciembre de 2010 18:32
  • Hola

    David

    Gracias por tus respuestas

    Estoy Elaborando una aplicacion con DataGRid de Silverlioght, y necesito ubicar un autocompletarBox en una columna con Ria services, pero al intentar entrar a una de las celdas se desaparecen los datos, no sé que es lo que ocurre.

    Gracias

    lunes, 13 de diciembre de 2010 23:08
  • Hola, llego un año tarde a ésta pregunta, pero tal vez en algún momento sirve.

    Cuando tuve un problema así era xq en el IIS el web q se publicaba estaba configurado por default el Anonymous Authentication en disable. Luego de setearlo a enable, se solucionó.

    WEB/IIS/Authentication

     

    Slds!

     

    lunes, 25 de abril de 2011 20:56
  • Amigo tengo exactamente dos a;os mas tarde el mismo problema, con la unica diferencia kue al tratar de publicar por webdeploy obtengo un error al igual kue por el publish FTP de visual studio. me gustaria saber si conoces otra forma de subir el sitio sin usar web deploy y configurar manualmente el web.config para kue funcione sobre el host de pago.

    podrias ayudarme?

    gracias.

    martes, 22 de mayo de 2012 16:17
  • Hola avila.

    1.- asegurate de que tu host de pago permite hospedar servicios WCF, o sea que se permita framework 3.5 o superior y que esten registrados.

    2.- publica tu sitio web con Visual Studio en una carpeta loca y luego sube a tu sitio los archivos publicados mediante el medio que quieras.

    3.- lo importante es que tengas bien configurado el webconfig, antes de probar nada, inserta la url al servicio en un navegador y verifica que te sale una pantalla indicando como llamar al servicio.

    Si esto ultimo no te sale, podrias poner la configuracion del servicio en el webconfig para echar un vistazo.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    lunes, 28 de mayo de 2012 12:41
  • Hola David,  otro que llega con 2 años de retraso. 

    Mi cuestión es similar. Trabajo en un servidor que tiene almacenado sql server 2008 con IIS 7.0 y Sharepoint Server 2010 . 

    He creado una aplicación Silverlight 5 en NET 3.5 y en Visual estudio los servicios RIA funcionan bien y se publican los datos del Domain Service perfectamente. 

    El problema viene con el Sharepoint ya que al publicar la .xap en Sharepoint me da este error cuando quiere cargar los datos:

    System.ServiceModel.domainServices.Client.DomainOperationException:

    Load operation failed for query 'GetProyectos'


    He leido algunos posts incluyendo este pero no logro resolver el problema. Debo decir que estoy poco familiarizado con el web.config y que a mi me sale una configuración mas corta comparado a otros. Este es el mio. 

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <system.webServer>
        <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>
        <validation validateIntegratedModeConfiguration="false" />
      </system.webServer>
      <system.web>
        <httpModules>
          <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </httpModules>
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          </assemblies>
        </compilation>
      </system.web>
      <connectionStrings>
        <add name="ProyectoEntities" connectionString="metadata=res://*/ModelProyecto.csdl|

    res://*/ModelProyecto.ssdl|res://*/ModelProyecto.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=Srvr\;initial catalog=Proyecto;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
      <system.serviceModel>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
          multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
    </configuration>  

    Se agradecen todo tipo de aportaciones

    Saludos



    • Editado axi23 lunes, 25 de junio de 2012 10:48
    lunes, 25 de junio de 2012 10:45
  • Hola axi23.

    El archivo .xap lo integras en Sharepoint, pero el sitio web con los servicios RIA ¿donde estan?, debes tener en cuenta que tienen que estar en el mismo dominio.

    ¿el webconfig que has puesto de donde es?, hace uso del framework 4.0


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/


    martes, 26 de junio de 2012 16:58
  • Hola David, perdon por la tardanza pero estaba en otras cosas.

    La web con los servicios RIA estan en el mismo dominio, pero creo que el problema está en el webconfig. He creado la aplicación de Silverlight (con su correpondiente .web) en Framework 3.5 pero como tu bien dices luego en la webconfig de la aplicación.web aparece la  referencia a 4.0 . Supongo que eso es lo extraño pero digo sin confianza ya que estoy demasiado poco familiarizado con los webconfig.

    De todos modos quizas me olvido con RIA y uso WCF normal ya que he comprobado que asi  me funciona bien.

    Un saludo y gracias por la respuesta

    viernes, 6 de julio de 2012 7:45
  • Hola Axi23.

    No se como has creado el proyecto, pero si el webconfig pone 4.0 existen 2 posibilidades:

    1.- el sitio web esta configurado para usar clr 2.0 => al ejecutar el sitio, dara un error, ya que no se reconoce la etiqueta 'targetFramework = 4'

    2.- el sitio web esta configurado para usar clr 4.0 => el sitio funcionara correctamente

    Hay que tener en cuenta que un sitio o aplicacion web desplegada no es como una aplicacion, en estas el echo de usar un framework u otro es solo a la hora del desarrollo, ya que una vez desplegado el sitio, realmente es la configuracion del IIS y el webconfig los que definen que clr se va a usar donde (clr 2.0 es usado para frameworks 2.0, 3.0 y 3.5, clr 4.0 para framework 4.0).

    Por otra parte, los servicios RIA, solo funcionan y estan disponibles para el framework 4.0, de modo que si tienes algo configurado en 3.5, tendras que cambiarlo al 4.0

    Ademas, la unica ventaja de usar RIA es la integracion scon Silverlight y su ventaja en la velocidad del desarrollo, pero al fin y al cabo estos servicios funcionan en base a los servicios WCF, de modo que con WCF vas a poder personalizarte mas tus servicios y/o hacer lo mismo que hace RIA Services.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    miércoles, 11 de julio de 2012 6:29