【问题标题】:Connecting to SQL Server Database using a Hosted Web Application使用托管 Web 应用程序连接到 SQL Server 数据库
【发布时间】:2016-11-28 11:48:07
【问题描述】:

我使用 c# 创建了一个 .net Web 应用程序,它可以插入、更新和删除 SQL Server 数据库中的数据。我已经使用我的本地主机对其进行了测试,它工作正常。现在我想在托管网站上发布此应用程序。

我的问题是,数据库是否需要与应用程序位于同一服务器/主机上才能连接?
有没有人对如何实现这个有任何提示?

【问题讨论】:

  • 这是一个满足您个人测试需求的项目吗?如果是,您可以尝试创建一个免费的 Azure 帐户并将其全部托管在那里
  • 嗨,简而言之:没有数据库可以在其他任何地方。但也有类似“有没有人对如何实现这个有任何提示?”之类的问题。不属于 SO。
  • 数据库和应用程序不需要相同的服务器/主机。
  • 它不必在服务器上,但如果是,它通常会使连接更容易,因为您不必处理网络。接受@apomene 的建议并免费试用 Azure
  • 感谢大家的回答!肯定帮了我!

标签: c# sql-server database-connection ssms


【解决方案1】:

不,您不必在与应用程序相同的服务器上运行数据库。为了可扩展性,最好将两者分开,一台专用服务器用于您的数据库,另一台服务器用于托管您的所有网站。

在您的应用程序中,您指定与数据库的连接。如果您真的想要进一步的安全性,您还可以在您的数据库服务器上设置 IP 限制以访问此数据。

【讨论】:

    【解决方案2】:

    如果您的问题是“如何连接另一台服务器上的数据库”,那么您必须在 Web.config 文件中将其 IP 地址添加为:

    <connectionStrings>
        <add name="myConnectionString" connectionString="data source=myserver\SQLEXPRESS;initial catalog=myDatabase;uid=myUserName;password=myPassword;" />
    </connectionStrings>
    

    data source 可以是 IP ADDRESS 或 PC NAME,用于存储数据库。

    【讨论】:

    • 感谢您的回答!是的,所以,这是我作为个人项目正在做的一个小应用程序。如果我的本地计算机上有数据库,我是否使用我的数据源 IP 将其映射到该数据库?
    • 这种情况下,可以写服务器名:"data source=localhost"
    • 即使我尝试从托管的 Web 应用程序访问位于本地 PC 中的数据库?连接字符串中的 localhost 可以使用吗?
    • 不,不会的!仅在 Application 和 Database 都在同一台机器上的情况下;那么只有localhost 会有所帮助,否则按照the Answer
    【解决方案3】:

    数据库是否需要与应用程序位于同一服务器/主机上才能连接?

    将数据库放在同一台机器或不同机器上由您决定。您可以选择以下方案

    • 如果它是一个简单的网站并且您只有一台机器,那么您可以在同一台服务器上安装数据库(或者如果已经存在)。在这种情况下,连接字符串可能需要也可能不需要根据类型进行更改您使用的连接字符串的数量(例如,如果您的 sql server 实例名称不同,则连接字符串会改变)
    • 您的网站可能会变得复杂或处理大量数据,使用专用数据库服务器是有意义的。这种情况下连接字符串会改变

    有没有人对如何实现这个有任何提示?

    解决这个问题的最简单方法是使用 web.config 转换。您所要做的就是创建一个新的 Web.Release.Config

    更多详情请参考此答案How do I use Web.Config transform on my connection strings?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2018-05-16
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多