Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序如何从一个VM到另一个VM查找SQL Server DB(设置或配置问题)_C#_Sql Server_Database_Networking - Fatal编程技术网

C# 应用程序如何从一个VM到另一个VM查找SQL Server DB(设置或配置问题)

C# 应用程序如何从一个VM到另一个VM查找SQL Server DB(设置或配置问题),c#,sql-server,database,networking,C#,Sql Server,Database,Networking,在我的公司,我们有3个虚拟机(应用程序、业务、数据库)。 我一直在试图了解我们在我的机器上运行的软件应用程序是如何使用带有连接字符串的简单文本文件与另一台服务器(如数据库服务器)通信,以连接到安装在那里的MS SQL的 如果我登录到Business server并运行简单的powershell来查询SQL db,它也可以连接 我的问题是,MS SQL Server(在我们的DB Server/vm上运行)的可见性如何可用于应用程序和业务服务器?是否通过在应用程序/业务服务器上安装一些组件并进行一

在我的公司,我们有3个虚拟机(应用程序、业务、数据库)。 我一直在试图了解我们在我的机器上运行的软件应用程序是如何使用带有连接字符串的简单文本文件与另一台服务器(如数据库服务器)通信,以连接到安装在那里的MS SQL的

如果我登录到Business server并运行简单的powershell来查询SQL db,它也可以连接

我的问题是,MS SQL Server(在我们的DB Server/vm上运行)的可见性如何可用于应用程序和业务服务器?是否通过在应用程序/业务服务器上安装一些组件并进行一些配置,以便能够从另一个VM与SQL server进行通信来完成?这里的设置通常是什么

对不起,你可能想知道为什么我问你们,而不是我团队中的开发人员,但他们也不知道,因为他们运行客户端应用程序,它使用连接字符串连接到数据库。DBA/基础架构人员进行了一些设置,但不会被打扰或不想被打扰


谢谢

您应该在下一个格式中指定更多详细信息:

  • 语言,使用的工具
  • 框架的版本和名称
  • 数据库版本
  • VM计算机版本和类型。(Oracle、VMWare等)
首先要检查的是应用程序外部和每个虚拟机内部的连接。 如果您从VM访问外部服务器中分配的数据库,则意味着infra团队已经完成了他们的工作

如果没有,您的虚拟机设置必须处于网络配置中,该配置允许您的虚拟机使用分配的数据库访问或访问您作为中央服务器的网络

看看:

如果第二个是这样的话,这不是开发人员的任务。它更多的是从Infra方面来的,你应该与你的pm一起将问题扩展到相应的部门


这些应该是你的第一项工作。最好的

客户端应用程序运行于C#7.0、.Net Framework 4.8,VM不知道详细信息,SQL DB版本12.0。抱歉,您的评论让我更加困惑。那么,设置是如何工作的呢?1)在VM1(DB Server)上安装SQL Server 2)通过安装SQL组件来配置连接,以便DB Server和数据库在VM外部可以访问和可见3)将其他SQL组件安装到VM2(应用程序服务器)和VM3(业务服务器)因此,在这两个VM(VM2,VM3)上安装并运行的任何独立应用程序都可以通过使用独立应用程序的app.config中的连接字符串轻松找到数据库?我不明白为什么DB应该安装在与业务服务器不同的服务器上。这似乎是最简单的方法。在运行应用程序的同一VM3中安装SQL server。除非成本应用程序+DB高于VM资源。一旦这样做了,您应该检查VM1、VM2是否到达应用程序,以及VM3上的DB。通过只设置每个(VM1,VM2)上的VM3主机的连接字符串。按照他们的配置方式,这些主机都在单独的VM上运行,因此客户端应用程序在VM2上,具有Business services DLL(VM3)的副本,这些DLL在配置文件中具有连接字符串,然后与VM1(DB服务器)通信。因此,为了简单地理解,业务服务器如何能够找到仅具有该连接字符串的DB服务器?是否使用特殊的SQL组件或DLL(安装在business server中)作为连接/通道?您的代码或BS应用程序中的xml定义中应该有一个连接字符串。它使用一些驱动程序作为lib。我不能不仔细看代码就说。但那是真的。第一个测试是通过sql plus或其他方式建立连接,单独从BS服务器连接到DB服务器。按你说的做口译。VM2:客户端应用程序+VM3中ws的客户端。VM3:WS DLL连接到VM1 VM1:db服务器中的数据库。我在你的问题中添加了一些有用的标签[C],[C]、[C]、[VM]也可以使用它们。如果有帮助,请告诉我,贝斯特。