Asp.net 窗体身份验证在开发服务器上工作,但在生产服务器上不工作(相同的SQL db)

Asp.net 窗体身份验证在开发服务器上工作,但在生产服务器上不工作(相同的SQL db),asp.net,asp.net-mvc,asp.net-membership,forms-authentication,Asp.net,Asp.net Mvc,Asp.net Membership,Forms Authentication,我以前从未遇到过这个问题,我完全不知所措 我有一个SQL Server 2008数据库,其中包含ASP.NET表单身份验证、创建的配置文件和角色,并在开发工作站上运行。我可以使用创建的用户登录,没有问题 我在开发计算机上备份数据库,并在生产服务器上恢复它。我将DLL和ASP.NET文件复制到服务器。我在web.config中进行了必要的更改,将SQL连接字符串更改为指向生产服务器数据库并将其上载 我已经确保生成一个机器密钥,它在development web.config和production

我以前从未遇到过这个问题,我完全不知所措

我有一个SQL Server 2008数据库,其中包含ASP.NET表单身份验证、创建的配置文件和角色,并在开发工作站上运行。我可以使用创建的用户登录,没有问题

我在开发计算机上备份数据库,并在生产服务器上恢复它。我将DLL和ASP.NET文件复制到服务器。我在web.config中进行了必要的更改,将SQL连接字符串更改为指向生产服务器数据库并将其上载

我已经确保生成一个机器密钥,它在development web.config和production web.config上都是相同的

然而,当我尝试登录生产服务器时,我能够在开发计算机上成功登录的同一用户在生产服务器上失败

数据库中还有其他内容,由FluentNHibernate生成的模式。可以在开发服务器和生产服务器上成功查询此内容


这是令人难以置信的,我相信我已经验证了一切,但显然它仍然不起作用,我一定错过了什么。拜托,有什么想法吗?

由于忘记在web.config中的membership providers元素下设置applicationName属性,我曾经遇到过类似症状的问题

  <membership defaultProvider="SqlProvider">
    <providers>
      <clear />
      <add
        name="SqlProvider"
        applicationName="MyApplication"
        ...
        />
    </providers>
  </membership>

用户与特定的应用程序相关联。因为我没有设置applicationName,所以它默认为应用程序路径(类似于“/MyApplication”)。当它移动到生产时,路径发生了更改(例如更改为“/WebSiteFolder/SomeSubFolder/MyApplication”),因此应用程序名称默认为新的生产路径,并且无法与开发中设置的原始用户帐户建立关联


您的问题可能与我的问题相同吗?

由于忘记在web.config中的membership providers元素下设置applicationName属性,我曾遇到过类似症状的问题

  <membership defaultProvider="SqlProvider">
    <providers>
      <clear />
      <add
        name="SqlProvider"
        applicationName="MyApplication"
        ...
        />
    </providers>
  </membership>

用户与特定的应用程序相关联。因为我没有设置applicationName,所以它默认为应用程序路径(类似于“/MyApplication”)。当它移动到生产时,路径发生了更改(例如更改为“/WebSiteFolder/SomeSubFolder/MyApplication”),因此应用程序名称默认为新的生产路径,并且无法与开发中设置的原始用户帐户建立关联


您的问题可能与我的问题相同吗?

尝试从web.config两个位置删除密钥…相同的问题?如果是这样的话,那么它仍然在使用机器之间不同的machine.config值删除机器密钥并重新创建数据库,或者删除机器密钥并再次尝试登录?尝试删除web.configs中定义的密钥…查看行为是否有任何变化,一些易于测试/回滚/尽早消除的功能:)如果运行SQL探查器并跟踪数据库调用会怎么样?执行的查询是否返回预期结果?请尝试从web.config中删除两个位置的密钥…同一问题?如果是这样的话,那么它仍然在使用机器之间不同的machine.config值删除机器密钥并重新创建数据库,或者删除机器密钥并再次尝试登录?尝试删除web.configs中定义的密钥…查看行为是否有任何变化,一些易于测试/回滚/尽早消除的功能:)如果运行SQL探查器并跟踪数据库调用会怎么样?执行的查询是否返回预期结果?我不明白为什么会修复它,因为我有其他应用程序没有设置该属性,但它确实修复了它。非常非常感谢。我也有同样的问题,你帮我省了几个小时的时间来解决这个问题!谢谢@托德·布鲁克斯:也许你的其他应用程序在生产和开发上都有相同的路径,这就是为什么你以前没有遇到这个问题。两年半后,仍然相关。太棒了。我不明白为什么会修复它,因为我有其他应用程序没有设置该属性,但它确实修复了它。非常非常感谢。我也有同样的问题,你帮我省了几个小时的时间来解决这个问题!谢谢@托德·布鲁克斯:也许你的其他应用程序在生产和开发上都有相同的路径,这就是为什么你以前没有遇到这个问题。两年半后,仍然相关。令人惊叹的。