none
Erro entre EF4 e MySQL RRS feed

  • Pergunta

  • Tentei procurar pela web e achei algumas coisas picadas mas nada realmente ajudou.

    Usando a máquina de desenvolvimento eu posso rodar uma aplicação que usa Entity Framework + MySQL (Connector 6.3.4) sem qualquer problema. Todas as consultas são feitas ao servidor (remoto) e tudo roda perfeitamente.

    Depois disso eu configurei um IIS intranet para testes. Liberei WebDeploy nele e publiquei como se fosse em qualquer IIS7 externo (como no Discount ASP por exemplo).

    A aplicação silverlight é enviada e começa dando um erro do DomainServices.
    Nas referências do projeto eu dei um CopyLocal True para ambas (Server e Hosting). Passou.

    Como estou usando o Connector 6.3.4 eu tenho 2 pastas de assemblys. Uma chamada v2 e outra v4.
    Adicionei as seguintes referências (com CopyLocal True) ao projeto:
    MySql.Data (v2)
    MySql.Data.Entity (v4)

    Daí chega na hora do acesso aos dados. Em uma determinada consulta eu realizo uma filtragem e faço um Single().
    Recebo o erro

    Unhandled Error in Silverlight Application Sequence contains no elements em System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) em
    WebNS.Views.Boleto.BoletoWeb.loadSacado_Completed(Object sender, EventArgs e) em
    System.ServiceModel.DomainServices.CLient.OperationBase.Complete(Exception error) em
    System.ServiceModel.DomainServices.CLient.LoadOperation.Complete(Exception error) em
    System.ServiceModel.DomainServices.CLient.DomainContext.CompleteLoad(IAsyncResult asyncResult) em
    System.ServiceModel.DomainServices.CLient.DomainContext.<>c__DisplayClass1b.<Load>b_17(Object)

     

    Seguindo conselhos de outros eu já adicionei um Count() logo antes do Single(). Não ajudou em nada.

    Existe elemento após a filtragem. Disso tenho certeza.
    O banco de dados está aberto e livre para conexões.

    Não consigo habilitar remote debugger. Provavelmente estou esquecendo algo mas simplesmente não consigo habilitar e sem ele eu não consigo acompanhar pra saber exatamente qual erro e se existe innerException dentro do erro principal, para tentar determinar a causa.

    Já adicionei o seguinte no Web.config (que também não ajudou em nada)

    <system.data>
      <DbProviderFactories>
       <clear />
       <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      </DbProviderFactories>
    </system.data>
    

    Também já tentei adicionar o seguinte (outro fórum, mas também sem qualquer resultado):

    <add assembly="Mysql.Data, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    <add assembly="Mysql.Web, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    

    ACREDITO que seja alguma falha de configuração do meu projeto no servidor, algo entre o Entity Framework e o MySQL, mas sem depuração e sem erros mais detalhados fica difícil descobrir exatamente o que está havendo.

    Alguém tem alguma dica ou algo que possa me ajudar?
    Ou alguma forma de que eu possa visualizar o erro melhor para tentar achar uma solução?

     

    Vlwz

    quarta-feira, 15 de setembro de 2010 13:42

Respostas

Todas as Respostas

  • Sem certeza se vai ajudar mas publiquei em um host (DiscountASP) de teste.

    Mesmas configurações que citei acima (DLLs do MySQL, do DomainServices, etc). Mesmo web.config.

    No trecho de código que realizo o Single() eu possuo um Try-Catch por segurança.
    Uma janela informa do erro (Catch).
    Ainda sim aparece um ícone de erro no IE (mensagens), com o seguinte conteúdo:

    Unhandled Error in Silverlight Application Load operation failed for query 'GetSacado'. The remote server returned an error: NotFound. em
    System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error) em
    System.ServiceModel.DomainServices.Client.LoadOperation.Complete(Exception error) em
    System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) em
    System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass1b.<Load>b_17(Object)

    quarta-feira, 15 de setembro de 2010 13:57
  • Nova pergunta aberta. O erro não é relacionado ao MySQL.
    • Marcado como Resposta LordALMMa quarta-feira, 15 de setembro de 2010 20:19
    quarta-feira, 15 de setembro de 2010 20:19