MySqlProfileProvider无法连接到我的数据库

时间:2014-03-21 17:07:16

标签: c# mysql asp.net

我在ASP.NET网站上工作,不幸的是我必须使用MySql来存储网站的数据。

我真的很难让MySql使用CreateUserWizard功能,而我只是失去了它。

直到我在Web.Config中定义自定义属性,一切都很好,我实际上设法注册了一些假用户。然后我想添加一些其他属性,如地址,性别等。我在Web.Config中添加了这些属性,如下所示:

的Web.Config

<profile enabled="true" defaultProvider="MySqlProfileProvider">
  <providers>
    <clear/>
    <add name="MySqlProfileProvider" autogenerateschema="True" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.8.3.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" conectionStringName="connMySql" applicationName="/"/>
  </providers>
  <properties>
    <add name="Nome" type="string"/>
    <add name="Cognome" type="string"/>
    <add name="Sesso" type="string"/>
    <add name="DataNascita" type="datetime"/>
    <add name="Indirizzo" type="string"/>
    <add name="Citta" type="string"/>
    <add name="Provincia" type="string"/>
    <add name="CAP" type="int"/>
  </properties>
</profile>

请注意我的连接字符串是正确的,因为我在Web.Config的其他部分使用它并且运行得很好。

稍后,在我的注册页面中,我编写了此代码(当然,在验证输入之后),以更新创建的用户。

register.aspx.cs

protected void wizard1_CreatedUser(object sender, EventArgs e)
{

    ProfileCommon p = (ProfileCommon)ProfileCommon.Create(wizard1.UserName, true);

    p.Nome = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Nome")).Text;
    p.Cognome = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Cognome")).Text;
    p.Sesso = ((DropDownList)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Sesso")).SelectedValue;
    p.DataNascita = System.Convert.ToDateTime(((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("DataNascita")).Text);
    p.Indirizzo = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Indirizzo")).Text;
    p.Citta = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Citta")).Text;
    p.Provincia = ((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("Provincia")).Text;
    p.CAP = System.Convert.ToInt32(((TextBox)wizard1.CreateUserStep.ContentTemplateContainer.FindControl("CAP")).Text);

    p.Save();

}

所有控件都放在.aspx页面中。

因此,当我运行页面时,我可以看到表单并输入数据。然后我的代码验证输入,如果它都正确,它会创建用户并进入{{1函数,它停在wizard1_CreatedUser部分,这实际上是第一条使用p.Nome = ...的指令。

它只是说MySqlProfileProvider 但是 Host 'Hostname' is not allowed to connect to this MySQL serverMySqlRoleProvider工作正常。实际上,用户已创建,但我的自定义配置文件数据不存在,因为代码会停在那里。

我使用具有所有权限的数据库用户。

我可能遗漏了一些东西,但我真的不知道是什么。

谢谢。

1 个答案:

答案 0 :(得分:0)

原来我需要启用完全信任

此外,一些文件被错误定位(它们不在网站的根目录中)。