Usuário com melhor resposta
WCF problema na comunicação entre o client e o WCF

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
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
-
- Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
-
Boas kaneda182,
As versões do .NET Framework estão corretas? É a mesma que utiliza na sua aplicação?
http://www.israelaece.com -
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
-
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
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
-
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 -
- Marcado como Resposta kaneda182 quinta-feira, 12 de novembro de 2009 17:22
-
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 -
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 -
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 -
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 -
Boas kaneda182,
As versões do .NET Framework estão corretas? É a mesma que utiliza na sua aplicação?
http://www.israelaece.com -
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 -
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 -
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 -
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 -
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
-
-
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
-
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