【问题标题】:web.config and membership database - from development to productionweb.config 和会员数据库 - 从开发到生产
【发布时间】:2012-08-20 18:09:10
【问题描述】:

我正在尝试托管我的第一个 ASP.NET 项目,在通过 FTP 初始上传后出现 SQL 连接错误,所以在进行了一些搜索后,我认为这是我的连接字符串,所以我通过正确放置我的主机来修复它信息:

 <add name="orangefreshConnectionString1" connectionString="Data Source=<server>;Initial Catalog=<catalog>;User Id=<user>;Password=<pwd>;" providerName="System.Data.SqlClient" />

所以这解决了我的问题,我的网站现在启动了...除了我尝试登录时,我收到另一个 SQL 连接错误。

我在我的网站上使用 2 个数据库: dbstart 和 ASPNETDB(成员资格的最后一个)

ASPNETDB 在我的开发 web.config 中被处理为: 供应商>

      <clear />
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
  </providers>

我知道这里有一些需要更改的地方,但我的谷歌查询到目前为止还没有帮助找到答案...

这是我的开发 web.config 内容:

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <connectionStrings>
    <add name="orangefreshConnectionString1" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\orangefresh.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
    <add name="orangefreshEntities" connectionString="metadata=res://*/App_Code.Orangefresh.csdl|res://*/App_Code.Orangefresh.ssdl|res://*/App_Code.Orangefresh.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\orangefresh.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.web>
    <customErrors mode="Off"/>
      <membership>
          <providers>
              <clear />
              <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
          </providers>
      </membership>
    <roleManager enabled="true" />
      <authentication mode="Forms">
          <forms loginUrl="default.aspx"></forms>
      </authentication>
    <pages theme="orangefresh" />
    <compilation debug="false" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      </assemblies>
      <buildProviders>
        <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
      </buildProviders>
    </compilation>
    <httpRuntime requestValidationMode="2.0" />
  </system.web>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="João &lt;email@email.com&gt;">
        <network host="host" userName="user" password="pass" />
      </smtp>
    </mailSettings>
  </system.net>
    <location path="Management">
        <system.web>
            <authorization>
                <allow roles="Admin"/>
                <deny users="*"/>
            </authorization>
        </system.web>
    </location>
</configuration>

如何在 web.config 上正确引用我的会员数据库?

【问题讨论】:

  • 您是否运行了 ASPregSQL.exe 来准备会员资格?这不是确切的名称,但它会在
  • 我刚刚找到那个exe并在我的数据库中加载了会员资格,有没有办法将我在ASPDBNET上创建的设置导入我刚刚添加memberip的数据库?比如,我已经设置了一个管理员帐户等等

标签: asp.net .net web-config windows-hosting


【解决方案1】:

在这里面改变:

<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>

connectionStringName="LocalSqlServer"

connectionStringName="orangefreshConnectionString1" 

connectionStringName="orangefreshEntities"

我不知道你使用哪个连接来做什么,但这就是需要改变的地方。

【讨论】:

  • 这是在运行 aspnet_regsql 之后对吧?在我创建它的时候我并不知道它。所以我在我的原始数据库上运行了这个工具,我现在只是想知道是否有办法将我所有的 ASPDBNET 设置导入到这个数据库中?例如,我在开发网站时创建的帐户
【解决方案2】:

是的,您备份原始 SQL 数据库,然后从顶部恢复。但是您不能只从还原开始。您需要使用该工具进行准备。在 SQL 还原上,您需要检查替换选项。同样在数据库的安全性方面,您可能需要删除并重新添加用户,并且用户可能具有相同的名称但可能不同的内部 ID。

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多