asp.net / MySQL: доступ запрещен для пользователя '' @ 'localhost' (используется пароль: НЕТ)

Я новичок веб-разработки, и я надеюсь, что кто-то с большим опытом может помочь разобраться с этим. Я попал в засаду обновления MySQL.

Фон: У меня есть два компьютера с XP (давайте честно называть их «веб-сервер» и «сервер MySQL»). Я недавно создал и успешно разместил сайт asp.net, который черпал данные из базы данных MySQL. Это просто сайт, предназначенный для нескольких локальных пользователей, поэтому им не нужно изучать SQL для получения данных ... ничего особенного. Все идет нормально.

Проблема: На этой неделе я установил MySQL на «веб-сервере», и вот тогда все сошло с ума. До этого момента на веб-сервере не было ни одного экземпляра MySQL. С момента установки я:

... переустановил провайдер MySQL .NET... перенастроил файл machine.config... скопировал MySQL_Web.dll в каталог MySQL bin... попытался привести настройки в соответствие с указаниями на сайте ниже.

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

Это решило ряд проблем, и я частично запустил сайт и снова начал работать. Я могу получить доступ к целевой странице, и запросы для гостевых пользователей возвращают данные в порядке.

Сообщение об ошибке № 1 Тем не менее, когда пользователь пытается войти в систему для доступа к частным страницам на сайте, я получаю сообщение об ошибке"Доступ запрещен для пользователя '' @ 'localhost' (используется пароль: НЕТ)", Это явно неправильно, так как я использую пароль и потому что нет строки подключения, указывающей на локальный хост / веб-сервер. Единственная строка соединения указывает на сервер MySQL, где находится база данных.

Сообщение об ошибке № 2 Я также смотрю на инструмент администрирования веб-сайта asp.net на вкладке Безопасность и вижу следующую ошибку:

"Возникла проблема с выбранным вами хранилищем данных. Это может быть вызвано неверным именем или учетными данными сервера или недостаточным разрешением. Это также может быть вызвано тем, что функция диспетчера ролей не включена. Нажмите кнопку ниже, чтобы перейти на страницу, где вы можете выбрать новое хранилище данных. Следующее сообщение может помочь в диагностике проблемы: Возникла исключительная ситуация. Пожалуйста, проверьте журнал событий."

Менеджер ролей определенно включен, и провайдеры настроены правильно.

Я попытался удалить MySQL на веб-сервере, воссоздать пользовательские таблицы сайта, очистить привилегии и несколько других хитростей, но теперь сайт, кажется, постоянно обходит базу данных в строке подключения во время входа в систему и поиска на веб-сервере. вместо.

У кого-нибудь есть идеи, где я могу взять это дальше? Я был в тупике в течение нескольких дней, и я не знаю, что еще я могу сделать.

Редактировать: Предоставление соответствующего кода, как указано в комментариях ниже. Как уже отмечалось, это весь стандартный код, сгенерированный как часть проекта по умолчанию, и он никак не редактировался (за исключением, конечно, 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>

Ответы на вопрос(1)

Ваш ответ на вопрос