none
WCF problema na comunicação entre o client e o WCF RRS feed

  • Pergunta

  • Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.30618; InfoPath.2; .NET CLR 3.5.30729; MS-RTC EA 2)
    Carimbo de data/hora: Tue, 10 Nov 2009 19:51:12 UTC


    Mensagem: Unhandled Error in Silverlight Application An exception occurred during the operation, making the result invalid.  Check InnerException for exception details.   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
       at RequisicaoCompraVersaoWeb.ComprasServiceReference.VerificaLoginCompletedEventArgs.get_Result()
       at RequisicaoCompraVersaoWeb.frmLogin.verificaLoginEvent(Object sender, VerificaLoginCompletedEventArgs e)
       at RequisicaoCompraVersaoWeb.ComprasServiceReference.RequisicaoCompraServiceClient.OnVerificaLoginCompleted(Object state)
    Linha: 1
    Caractere: 1
    Código: 0

    Estou com a propriedade includeExceptionDetailInFaults="true"

    Tudo certinho quando rodo via VS2008 vai tudo certo , mas depois que hospedo o serviço no IIS e vou tentar conectar é disparado esse erro acima.

    Alguém já passou por situação semelhante?

    O metodo verifica login envia a senha e o usuario e depois é retornado um enum indicando qual foi o status do login bem simples.

    Obrigado!
    kaneda182
    terça-feira, 10 de novembro de 2009 20:12

Respostas

  • Boas kaneda182,

    Uma pergunta boba: você alterou o endereço do serviço (na referência) depois que publicou a aplicação?
    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quarta-feira, 11 de novembro de 2009 01:06
    Moderador
  • Boas kaneda182,

    E pelo browser você acessa o serviço?
    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quarta-feira, 11 de novembro de 2009 11:56
    Moderador
  • Boas kaneda182,

    As versões do .NET Framework estão corretas? É a mesma que utiliza na sua aplicação?


    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 16:29
    • Não Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 16:29
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quinta-feira, 12 de novembro de 2009 12:12
    Moderador
  • Abilite o tracer do serviço, assim pode utilizar qualquer visualizador de logs para constatar o que está acontecendo, recomendo o Microsoft Service Tracer Viewer.

    Para abilitar o trace adicione as seguintes linhas dentro do seu web.config ou app.config:

    <system.diagnostics>
        <trace autoflush="true" />
        <sources>
          <source name="System.ServiceModel"
                  switchValue="Information, ActivityTracing"
                  propagateActivity="true">
            <listeners>
              <add name="sdt"
                  type="System.Diagnostics.XmlWriterTraceListener"
                  initializeData= "SdrConfigExample.svclog" />
            </listeners>
          </source>
        </sources>
      </system.diagnostics>
    certifique-se de que o código está dentro da tag <configuration>

    Ai é só repetir a execução do serviço e constatar no log o que pode estar acontecendo.

    Espero que ajude!
    Marcos Latchuk
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:19
    quinta-feira, 12 de novembro de 2009 16:09
  • Na pasta raiz onde está sendo executado o serviço.

    O parâmetro InitializeData pode ser configurado para que seja salvo em outro local. Ex: InitializeData = "C:\InitializeData "
    Marcos Latchuk
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:19
    quinta-feira, 12 de novembro de 2009 16:48

Todas as Respostas

  • Boas kaneda182,

    Uma pergunta boba: você alterou o endereço do serviço (na referência) depois que publicou a aplicação?
    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quarta-feira, 11 de novembro de 2009 01:06
    Moderador
  • Alterei sim Aece, http://172.16.0.92:8080/MeuServico.svc esse ip e porta refere-se a maquina onde o serviço esta.
    por que o VS2008 gera http://localhost:1456/MeuServico.svc.

    Quando se gera o publish fica um arquivo dentro do .xap onde você altera essas configurações.

    Estou colocando o serviço em um windows server 2003.


    kaneda182
    quarta-feira, 11 de novembro de 2009 11:39
  • Boas kaneda182,

    E pelo browser você acessa o serviço?
    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quarta-feira, 11 de novembro de 2009 11:56
    Moderador
  • Sim , aparece a tela indicando para o uso do svcUtil.exe para ver o codico auto gerado , em que você visualiza os métodos e classes do serviço.
    Confirmei agora não tinha feito esse teste na maquina "Client" quando eu digito o endereço do serviço no browser acessa o serviço perfeitamente.
    kaneda182
    quarta-feira, 11 de novembro de 2009 12:51
  • Nas propriedades escolhi que ele criasse um diretório virtual e executasse a partir de lá. O seguinte erro é retornado.

    An error occurred while trying to make a request to URI 'http://localhost:1456/RequisicaoCompraService.svc'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. This error may also be caused by using internal types in the web service proxy without using the InternalsVisibleToAttribute attribute. Please see the inner exception for more details.


    kaneda182
    quarta-feira, 11 de novembro de 2009 16:31
  • Conseguir resolver o problema acima e voltou para o problema inicial.

    Detalhes dos erros da página da Web

    Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.30618; InfoPath.2; .NET CLR 3.5.30729; MS-RTC EA 2)
    Carimbo de data/hora: Wed, 11 Nov 2009 18:16:50 UTC


    Mensagem: Unhandled Error in Silverlight Application An exception occurred during the operation, making the result invalid.  Check InnerException for exception details.   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
       at RequisicaoCompraVersaoWeb.ComprasServiceReference.VerificaLoginCompletedEventArgs.get_Result()
       at RequisicaoCompraVersaoWeb.frmLogin.verificaLoginEvent(Object sender, VerificaLoginCompletedEventArgs e)
       at RequisicaoCompraVersaoWeb.ComprasServiceReference.RequisicaoCompraServiceClient.OnVerificaLoginCompleted(Object state)
    Linha: 1
    Caractere: 1
    Código: 0


    kaneda182
    quarta-feira, 11 de novembro de 2009 18:16
  • Consegui no colocar o serviço no IIS 7 do Windows Vista Ultimate e fazer funcionar, mas não consigo no IIS 6 do Windows Server 2003 , fiz as atualizações do Windows Server mas nada resolveu , continuo com o mesmo erro.

    Não consigo identificar a diferença entra as instalações que fiz no IIS7(VistaU) e no IIS6(WS2003) aparentemente o mesmo processo.

    Se alguém puder me dar uma força ficarei grato, cara isso já tá me tirando o sono.
    kaneda182
    quinta-feira, 12 de novembro de 2009 11:58
  • Boas kaneda182,

    As versões do .NET Framework estão corretas? É a mesma que utiliza na sua aplicação?


    http://www.israelaece.com
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 16:29
    • Não Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 16:29
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
    quinta-feira, 12 de novembro de 2009 12:12
    Moderador
  • Bom no windows server 2003 está instalado .NET Framework 3.5 até instalei C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i e o do C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet_regiis.exe -i

    A única diferença entre as duas maquinas , é que no Windows Vista Ultimate está instalado o VS2008 que é a maquina em que eu desenvolvo.O restante entre elas está tudo igual teoricamente.

    Não sei se ajuda , mas criei uma Silverlight 3 application e junto ele já vem com um projeto WCF que é o que estou tentando hospedar no IIS6.

    Instalei os MIME no IIS6 mas também não resolveu.Acho que já estava instalado nas inúmeras tentativas de fazer roda-lo.

      .xap     application/x-silverlight-app
      .xaml    application/xaml+xml
      .xbap    application/x-ms-xbap

    Mais uma vez obrigado pelo auxílio, Aece.
    kaneda182
    quinta-feira, 12 de novembro de 2009 13:21
  • Tem como fazer algo para ter uma informação mais precisa, gostaria de fazer um rastreio do que acontece, quando no client eu clico em "Logar" ele faz a requisição no serviço ,mas na hora do serviço responder existe algum problema. Teria como eu obter informações mais precisas?Se sim , como possa fazer? Porque pelo erro que é gerado no OnVerificaLoginCompleted() esse "Completed" é o evento de resposta do serviço. ServiceReference.ClientConfig: Web Config:
    kaneda182
    quinta-feira, 12 de novembro de 2009 14:13
  • Tem como fazer algo para ter uma informação mais precisa, gostaria de fazer um rastreio do que acontece, quando no client eu clico em "Logar" ele faz a requisição no serviço ,mas na hora do serviço responder existe algum problema. Teria como eu obter informações mais precisas?Se sim , como possa fazer? Porque pelo erro que é gerado no OnVerificaLoginCompleted() esse "Completed" é o evento de resposta do serviço. ServiceReference.ClientConfig:

    <configuration>
        <system.serviceModel>
            <bindings>
                <basicHttpBinding>
                    <binding name="BasicHttpBinding_RequisicaoCompraService" maxBufferSize="2147483647"
                        maxReceivedMessageSize="2147483647">
                        <security mode="None" />
                    </binding>
                </basicHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://172.16.0.26:80/RequisicaoCompraService.svc"
                    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_RequisicaoCompraService"
                    contract="ComprasServiceReference.RequisicaoCompraService"
                    name="BasicHttpBinding_RequisicaoCompraService" />
            </client>
        </system.serviceModel>
    </configuration>


    kaneda182
    quinta-feira, 12 de novembro de 2009 14:14

  • WebConfig :
    
    <?xml version="1.0"?>
    <configuration>
    	<configSections>
    		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
    					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				</sectionGroup>
    			</sectionGroup>
    		</sectionGroup>
     </configSections>
      
    <appSettings>
        <add key="conexao" value="ConexaoMaykon"/>
     </appSettings>
    
      <connectionStrings>
     
        <add name="ConexaoMaykon" connectionString="Data Source=MAYKON\SQLEXPRESS;Initial Catalog=DBTERTIUS;User=sa;Password=*****;Integrated Security=False" providerName="System.Data.SqlClient" />
    
      </connectionStrings>
    	<system.web>
    		<!-- 
                Set compilation debug="true" to insert debugging 
                symbols into the compiled page. Because this 
                affects performance, set this value to true only 
                during development.
            -->
    		<compilation debug="true">
    			<assemblies>
    				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    			</assemblies>
    		</compilation>
    		<!--
                The <authentication> section enables configuration 
                of the security authentication mode used by 
                ASP.NET to identify an incoming user. 
            -->
    		<authentication mode="None"/>
    		<!--
                The <customErrors> section enables configuration 
                of what to do if/when an unhandled error occurs 
                during the execution of a request. Specifically, 
                it enables developers to configure html error pages 
                to be displayed in place of a error stack trace.
    
            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
    		<pages>
    			<controls>
    				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			</controls>
    		</pages>
    		<httpHandlers>
    			<remove verb="*" path="*.asmx"/>
    			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    		</httpHandlers>
    		<httpModules>
    			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</httpModules>
    	</system.web>
    	<system.codedom>
    		<compilers>
    			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    				<providerOption name="CompilerVersion" value="v3.5"/>
    				<providerOption name="WarnAsError" value="false"/>
    			</compiler>
    		</compilers>
    	</system.codedom>
    	<!-- 
            The system.webServer section is required for running ASP.NET AJAX under Internet
            Information Services 7.0.  It is not necessary for previous version of IIS.
        -->
    	<system.webServer>
    		<validation validateIntegratedModeConfiguration="false"/>
    		<modules>
    			<remove name="ScriptModule"/>
    			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</modules>
    		<handlers>
    			<remove name="WebServiceHandlerFactory-Integrated"/>
    			<remove name="ScriptHandlerFactory"/>
    			<remove name="ScriptHandlerFactoryAppServices"/>
    			<remove name="ScriptResource"/>
    			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</handlers>
    	</system.webServer>
    	<runtime>
    		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    		</assemblyBinding>
    	</runtime>
     <system.serviceModel>
      <behaviors>
       <serviceBehaviors>
        <behavior name="RequisicaoCompraServiceVersaoWeb.Web.RequisicaoCompraServiceBehavior">
         <serviceMetadata httpGetEnabled="true" />
         <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
       </serviceBehaviors>
      </behaviors>
      <bindings>
        <basicHttpBinding>
          <binding name="ServicesBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647">
            <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647"/>
          </binding>
        </basicHttpBinding>
       <customBinding>
        <binding name="customBinding0">
         <binaryMessageEncoding />
         <httpTransport />
        </binding>
       </customBinding>
      </bindings>
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
      <services>
       <service behaviorConfiguration="RequisicaoCompraServiceVersaoWeb.Web.RequisicaoCompraServiceBehavior"
        name="RequisicaoCompraServiceVersaoWeb.Web.RequisicaoCompraService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="ServicesBinding"
         contract="RequisicaoCompraServiceVersaoWeb.Web.RequisicaoCompraService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
       </service>
      </services>
     </system.serviceModel>
    </configuration>
    

    kaneda182
    quinta-feira, 12 de novembro de 2009 14:16
  • Abilite o tracer do serviço, assim pode utilizar qualquer visualizador de logs para constatar o que está acontecendo, recomendo o Microsoft Service Tracer Viewer.

    Para abilitar o trace adicione as seguintes linhas dentro do seu web.config ou app.config:

    <system.diagnostics>
        <trace autoflush="true" />
        <sources>
          <source name="System.ServiceModel"
                  switchValue="Information, ActivityTracing"
                  propagateActivity="true">
            <listeners>
              <add name="sdt"
                  type="System.Diagnostics.XmlWriterTraceListener"
                  initializeData= "SdrConfigExample.svclog" />
            </listeners>
          </source>
        </sources>
      </system.diagnostics>
    certifique-se de que o código está dentro da tag <configuration>

    Ai é só repetir a execução do serviço e constatar no log o que pode estar acontecendo.

    Espero que ajude!
    Marcos Latchuk
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:19
    quinta-feira, 12 de novembro de 2009 16:09
  • E em que local é salvo esse log?Quando coloco isso no webconfig.
    kaneda182
    quinta-feira, 12 de novembro de 2009 16:36
  • Na pasta raiz onde está sendo executado o serviço.

    O parâmetro InitializeData pode ser configurado para que seja salvo em outro local. Ex: InitializeData = "C:\InitializeData "
    Marcos Latchuk
    • Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:19
    quinta-feira, 12 de novembro de 2009 16:48
  • Aew através dessa ferramenta descobri o problema.

    O problema estava na string de conexão!
    Só que tinha formatado a maquina e instalado tudo novamente o nome da instancia mudou e não alterei no webconfig!
    Nossa perdi mais alguns fios de cabelos e ganhei algumas rugas por um problema simples desse!
    2 dias quase tentando descobrir isso.

    Mas o importante é ter resolvido.

    Obrigado Aece e Latchuk pela força, abraços!
    kaneda182
    quinta-feira, 12 de novembro de 2009 17:22