asp.net / MySQL: Odmowa dostępu dla użytkownika '' @ 'localhost' (używając hasła: NIE)

Jestem debiutantem web dev i mam nadzieję, że ktoś z większym doświadczeniem pomoże rozwiązać ten problem. Zostałem zasadzony przez aktualizację MySQL.

Tło: Mam dwa komputery XP (nazwijmy je ambitnie „serwerem sieciowym” i „serwerem MySQL”). Niedawno zbudowałem i pomyślnie hostowałem witrynę asp.net, która pobierała dane z bazy danych MySQL. To tylko strona przeznaczona dla kilku lokalnych użytkowników, więc nie muszą uczyć się SQL, aby uzyskać dane ... nic nadzwyczajnego. Jak na razie dobrze.

Problem: W tym tygodniu zainstalowałem MySQL na „serwerze WWW” i wtedy wszystko zaczęło zwariować. Przedtem nie było żadnego wystąpienia MySQL na serwerze WWW. Od czasu instalacji:

... ponownie zainstalował dostawcę MySQL .NET... ponownie skonfigurował plik machine.config... skopiował MySQL_Web.dll do katalogu bin MySQL... próbowałem ustawić konfigurację zgodnie z kierunkami w witrynie poniżej.

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

W ten sposób rozwiązano szereg problemów i ponownie uruchomiłem stronę. Mogę uzyskać dostęp do strony docelowej, a zapytania dla gości zwracają dane w porządku.

Komunikat o błędzie # 1 Jednak gdy użytkownik próbuje się zalogować, aby uzyskać dostęp do stron prywatnych w witrynie, pojawia się błąd„Odmowa dostępu dla użytkownika” „@” localhost ”(przy użyciu hasła: NIE)”. Jest to oczywiście błędne, ponieważ używam hasła i ponieważ nie ma ciągu połączenia wskazującego na localhost / serwer WWW. Jedyny ciąg połączenia wskazuje na serwer MySQL, na którym znajduje się baza danych.

Komunikat o błędzie # 2 Sprawdzam również narzędzie do administrowania witryną sieci Web asp.net na karcie Zabezpieczenia i widzę następujący błąd:

"Wystąpił problem z wybranym magazynem danych. Może to być spowodowane niepoprawną nazwą serwera lub poświadczeniami lub niewystarczającymi uprawnieniami. Może to być również spowodowane brakiem włączenia funkcji menedżera ról. Kliknij poniższy przycisk, aby przejść do strony, na której możesz wybrać nowy magazyn danych. Poniższy komunikat może pomóc w zdiagnozowaniu problemu: Wystąpił wyjątek. Sprawdź dziennik zdarzeń."

Menedżer ról jest zdecydowanie włączony, a dostawcy są poprawnie skonfigurowani.

Próbowałem odinstalować MySQL na serwerze WWW, odtworzyć tabele użytkowników witryny, przywrócić przywileje i kilka innych sztuczek, ale teraz strona wydaje się trwale ominąć db w ciągu połączenia podczas procesu logowania i przeszukiwania serwera WWW zamiast.

Czy ktoś ma jakieś pomysły, gdzie mogę to zrobić? Przez kilka dni byłem zakłopotany i nie wiem, co jeszcze mogę zrobić.

Edytować: Podanie odpowiedniego kodu zgodnie z poniższymi uwagami. Jak wspomniano, jest to cały standardowy kod generowany jako część domyślnego projektu i nie był w żaden sposób edytowany (z wyjątkiem oczywiście web.config).

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