asp.net / MySQL: Acesso negado para o usuário '' @ 'localhost' (usando a senha: NO)

Eu sou um web rookie dev e espero que alguém com mais experiência possa ajudar a resolver isso. Eu fui emboscado por uma atualização do MySQL.

Fundo: Eu tenho dois PCs XP (vamos chamá-los ambiciosamente de "servidor web" e "servidor MySQL"). Recentemente criei e hospedei com sucesso um site asp.net que extraía dados do banco de dados MySQL. É apenas um site projetado para alguns usuários locais, para que eles não precisem aprender SQL para obter dados ... nada extravagante. Por enquanto, tudo bem.

Problema: Esta semana eu instalei o MySQL no "servidor web", e foi aí que as coisas ficaram loucas. Não havia nenhuma instância do MySQL no servidor web antes desse ponto. Desde a instalação eu tenho:

... reinstalou o provedor MySQL .NET... reconfigurou o arquivo machine.config... copiou o MySQL_Web.dll para o diretório bin do MySQL... tentou obter a configuração para alinhar com as instruções no site abaixo.

http://dev.mysql.com/doc/refman/5.0/en/connector-net-tutorials-asp-roles.html

Isso tratou de vários problemas e coloquei o site parcialmente em funcionamento novamente. Eu posso acessar a página de destino e consultas para usuários convidados estão retornando dados ok.

Mensagem de Erro # 1 No entanto, quando o usuário tenta efetuar login para acessar páginas privadas no site, recebo o erro"Acesso negado para o usuário '' @ 'localhost' (usando a senha: NO)". Isso está claramente errado, já que estou usando uma senha e porque não há cadeia de conexão apontando para o servidor local / web. A única cadeia de conexão aponta para o servidor MySQL onde o banco de dados reside.

Mensagem de erro 2 Eu também estou olhando para o asp.net Web Site Administration Tool na guia Segurança e vendo o seguinte erro:

"Existe um problema com o armazenamento de dados selecionado. Isso pode ser causado por um nome de servidor inválido ou credenciais ou por permissão insuficiente. Isso também pode ser causado pelo fato de o recurso do gerenciador de funções não estar ativado. Clique no botão abaixo para ser redirecionado para uma página na qual você pode escolher um novo armazenamento de dados. A seguinte mensagem pode ajudar no diagnóstico do problema: Ocorreu uma exceção. Por favor, verifique o log de eventos."

O gerenciador de funções está definitivamente habilitado e os provedores estão configurados corretamente.

Eu tentei desinstalar o MySQL no servidor web, recriando as tabelas de usuários do site, liberando privilégios e alguns outros truques, mas o site agora parece estar permanentemente ignorando o banco de dados na cadeia de conexão durante o processo de login e pesquisando o servidor web em vez de.

Alguém tem alguma idéia de onde eu posso levar isso a seguir? Fiquei perplexo por alguns dias e não sei o que mais posso fazer.

Editar: Fornecendo o código relevante conforme solicitado nos comentários abaixo. Como observado, isso é todo código padrão gerado como parte de um projeto padrão, e não foi editado de forma alguma (exceto web.config, é claro).

Web.config

<connectionStrings>
   <remove name="MySQLWebConnection"/>
   <add name="MySQLWebConnection" connectionString="server=myWebServer;User Id=myName;password=myPwd;database=myDB" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>


<system.web>
   <membership defaultProvider="MySQLMembershipProvider" />
   <roleManager enabled="true" defaultProvider="MySQLRoleProvider" />
   <authentication mode="Forms">
    <forms name=".ASPXFORMSAUTH" loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" />
   </authentication>
   ...
</system.web>

Login.aspx

   <asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
        <LayoutTemplate>
            <span class="failureNotification">
                <asp:Literal ID="FailureText" runat="server"></asp:Literal>
            </span>
            <asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification" 
                 ValidationGroup="LoginUserValidationGroup"/>
            <div class="accountInfo">
                <fieldset class="login">
                    <legend>Account Information</legend>
                    <p>
                        <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label>
                        <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                             CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                    </p>
                    <p>
                        <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                        <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                             CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                    </p>
                    <p>
                        <asp:CheckBox ID="RememberMe" runat="server" Visible="false" />
                        <asp:Label ID="RememberMeLabel" runat="server" Visible="false" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
                    </p>
                </fieldset>
                <p class="submitButton">
                    <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="LoginUserValidationGroup"/>
                </p>
            </div>
        </LayoutTemplate>
    </asp:Login>

questionAnswers(1)

yourAnswerToTheQuestion