【问题标题】:Problem publishing ASP.NET application with a SQL Server database使用 SQL Server 数据库发布 ASP.NET 应用程序时出现问题
【发布时间】:2019-10-25 23:07:31
【问题描述】:

我创建了一个 ASP.NET 网站,它可以在 Visual Studio 中完美运行。它连接到App_Data 文件夹中的 SQL Server .mdf 数据库文件。我使用 FTP 发布了项目。但是,实时网站无法连接到数据库,因为它是 LocalDB,并且我的主机使用 SQL Server (SqlException (0x80131904))

我将本地 .mdf 数据库文件的相同副本从我的计算机上传到主机的 SQL Server。然后我尝试从 Visual Studio 与服务器数据库建立数据连接,但是出于安全原因,我的主机不允许远程数据库访问,导致错误 40。

我在我的应用程序中使用 ASP.NET MVC,因此我需要访问数据库来创建模型。我的主人说过"you can access SQL Server databases using ASP scripts running on your presence"

所以我的问题是:当不允许远程访问时,如何基于主机的 SQL Server 数据库创建模型?

【问题讨论】:

  • 当您使用 Visual Studio 进行测试时,您连接到数据库的本地副本。当您准备好发布应用程序时,将数据库复制到远程 sql 服务器并附加它。然后,您发布的应用程序副本应连接到该服务器上上传的数据库。这样,您就有了一个用于测试的环境和一个用于实际使用的环境。 Visual Studio 应该不需要连接到远程数据库
  • @ADyson 我将如何配置应用程序以便它连接到 Visual Studio 中的 localDB,但在发布时连接到服务器数据库?
  • 通常在 web.config 文件中设置数据库连接字符串。因此,如果您为每个构建配置(例如调试和发布)创建不同的配置转换,那么 Visual Studio 将在您执行发布操作时创建正确版本的配置文件。有关配置转换的信息,请参阅 docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
  • @ADyson 感谢您的帮助,我的网站运行顺利 :) 如果您将您的 cmets 作为答案,我会将其标记为正确。
  • 完成...很高兴它帮助了你:-)

标签: asp.net sql-server model-view-controller


【解决方案1】:

当您使用 Visual Studio 进行测试时,您应该连接到数据库的本地副本。当您准备好发布应用程序时,将数据库复制到远程 sql 服务器并附加它。然后,您发布的应用程序副本应连接到该服务器上上传的数据库。

这样您就有了一个用于测试的环境和一个用于实际使用的环境。 Visual Studio 应该不需要连接到远程数据库。

附:为了让你在不同的环境下连接不同的数据库,通常你在 web.config 文件中设置你的数据库连接字符串。因此,如果您为每个构建配置(例如调试和发布)创建不同的配置转换,那么 Visual Studio 将在您执行发布操作时创建正确版本的配置文件。有关配置转换的信息,请参阅 https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/visual-studio-web-deployment/web-config-transformations

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2020-11-12
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    相关资源
    最近更新 更多