如何从Azure VM内部访问数据

本文关键字:内部 访问 数据 VM Azure | 更新日期: 2023-09-27 18:03:57

假设我有一个VM (windows)运行在MS-Azure上。假设我在VM上有程序Y和Z,它们正在记录一些关键数据。假设我在VM中也有一个程序X,它接受一些参数并根据过滤器返回一些关键数据。

现在,我正在构建一个前端web应用程序,一个ASP。. NET网站,上面提到的虚拟机的所有者可以登录并查看X程序提供的数据。

我已经有我的日志程序运行在VM和程序X安装。我怎么能访问一个VM内的可执行文件,传递参数给它,运行它,并得到结果返回给我?这可行吗?有人能建议我怎样才能做到这一点吗?

谢谢。

如何从Azure VM内部访问数据

如果您的程序X不涉及GUI,您可以尝试在PS远程会话上运行它。下面是一个关于如何配置powershell远程的很好的指南。

另外,这里有一篇关于防火墙上需要打开的端口的文章。

默认情况下,PowerShell将使用以下端口进行通信(它们与WinRM是相同的端口)

TCP/5985 = HTTP TCP/5986 = HTTPS

如果它涉及GUI,据我所知,唯一的解决方案是使用RDP远程到VM。

此外,在internet上公开WinRM或RDP端口不是一个好主意。我建议你在Azure上创建一个VPN,并在VPN上使用WinRM或RDP。

您可以使用System.Diagnostic.Process类运行另一个可执行文件:

// Start the child process.
 Process p = new Process();
 // Redirect the output stream of the child process.
 p.StartInfo.UseShellExecute = false;
 p.StartInfo.RedirectStandardOutput = true;
 p.StartInfo.FileName = "X.exe";
 p.Start();
 // Do not wait for the child process to exit before
 // reading to the end of its redirected stream.
 // p.WaitForExit();
 // Read the output stream first and then wait.
 string output = p.StandardOutput.ReadToEnd();
 p.WaitForExit();

复制:在c#中使用参数

运行控制台应用程序