【问题标题】:web.config and membershipweb.config 和成员资格
【发布时间】:2012-02-26 16:29:06
【问题描述】:

当我尝试在已发布的网站上执行登录操作或创建用户操作时出现运行时错误。

我在 appData 文件夹中有一个 ASPNETDB.MDF,它是从 ASP.NET 配置创建的。 我在托管中创建了新数据库,从 ASPNETDB.MDF 导出到新数据库。我更改了连接字符串。 即使使用新的连接字符串,Localy 也能完美运行,但是在我发布它之后,我遇到了运行时错误。

我正在使用 asp 登录控件和 CreateUserWizard。 顺便说一句,我创建了一些 GridView 和 SqlDataSource 来显示所有用户,它可以工作。但是 login 和 createWizard 不是。

web.config

<configuration>
  <connectionStrings>
    <add name="ConnectionString" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;"  providerName="System.Data.SqlClient"/>  
  </connectionStrings>
   <system.web>    
      <roleManager enabled="true" />
      <authentication mode="Forms" />
      <compilation debug="false" targetFramework="4.0" />     
    </system.web>

</configuration>

顺便说一句,我尝试将会员提供程序添加到 web.config 并且它甚至在本地都不起作用))

UPD:

错误 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)

【问题讨论】:

  • 你能给我们更多关于它只是不工作的信息吗?你有什么例外吗?
  • 是的,对不起..我添加了错误..

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


【解决方案1】:

对于初学者来说,您可以在 web.config 中添加以下内容:

<configuration>
  <system.web>
    <customErrors mode="off"></customErrors>
  </system.web>
</configuration>

这应该可以让您获得有关问题所在的更详细的错误消息。看看这是否让你走上了正确的道路。它至少应该提供更多关于可能出错的信息。

更新 - 在你的 web.config 中试试这个:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;"  providerName="System.Data.SqlClient"/>
    <add name="ConnectionString" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;"  providerName="System.Data.SqlClient"/>
</connectionStrings>

更新 - 成功了!以下是一个简短的解释: 默认情况下,ASP 成员资格类使用连接字符串 LocalSqlServer。代码在本地机器上运行的原因是连接 LocalSqlServer 是在机器级别的配置文件中定义的,以指向本地 sql 数据库。当您发布它时,SqlDataSource/GridView 工作,因为它正在拉取名为 ConnectionString 的连接,该连接指向正确的服务器。然而,ASP 成员仍试图连接到 LocalSqlServer 连接。上面的配置只是忽略了机器级别的 LocalSqlServer 连接并定义了它自己的(并且它保留了 ConnectionString 一个,以便 GridView 继续运行)。

【讨论】:

  • 我更新了.. 错误是:建立与 SQL Server 的连接时发生网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)
  • @RaShe 这是无法访问数据库的消息。您是否将所有使用旧 connectionstring 的源代码更改为新源代码?重新检查一遍,可能 Membership、Roles 和 Authentication 仍然指向一个不存在或丢失的连接字符串。
  • 听起来你的连接字符串可能有问题。你说你有一个工作的 SqlDataSource/GridView。 SqlDataSource 是否使用完全相同的连接字符串? (我的第一个猜测是连接字符串的“Server=”部分或 标记中的名称有问题)
  • 快速尝试一下:将连接字符串名称从“ConnectionString”更改为“LocalSqlServer”。默认情况下,角色提供者会将此作为默认连接字符串名称。
  • @balexandre 我检查了,问题是我无法检查连接字符串得到了登录asp控制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多