Azure asp.net Web 应用程序尝试连接到 Oracle 运行时集成链接服务

Posted

技术标签:

【中文标题】Azure asp.net Web 应用程序尝试连接到 Oracle 运行时集成链接服务【英文标题】:Azure asp.net web app trying to connect to Oracle runtime integration linked service 【发布时间】:2022-01-14 15:51:27 【问题描述】:

我在 Azure 上创建了一个 web app service 和一个带有运行时集成链接服务的数据工厂Oracle(连接测试和工作)。 web app serviceasp.net core 并用 c# 编写。

问题是:如何建立从 Web 应用服务到此 Oracle 链接服务连接的连接?

使用odbc connection,我可以使用此字符串格式从我的计算机本地连接到oracle database

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

我如何在这个 c# 代码中引用 Oracle 链接服务? (有可能吗?)

【问题讨论】:

【参考方案1】:

您可以按照以下步骤使用混合连接将 azure web 应用程序连接到 oracle 服务器:

要创建混合连接,请转到 Azure 门户并选择您的应用服务,然后选择网络 > 配置您的混合连接端点

如上图所示,点击添加混合连接,您将看到以下屏幕:

单击创建新的混合连接链接,将显示以下刀片:

创建新的混合连接边栏选项卡中,您必须为您的 Oracle 服务器混合连接填写以下字段:

单击确定按钮后,Azure 将开始创建您的混合连接。 请注意,创建后混合连接的状态在下面的屏幕截图中为“未连接”。

这没关系,因为我们尚未部署 HCM 或建立连接。

要完成我们的混合连接设置,我们必须从门户中的链接下载并安装混合连接管理器 (HCM):

下载包后,运行它并执行以下步骤:

点击安装按钮

打开混合连接管理器用户界面

单击添加新的混合连接链接,登录您的 Azure 订阅并选择您在其中创建混合连接的订阅。

登录后,您应该会看到以下窗口:

要将状态更改为已连接,您需要重新启动 Azure 混合连接管理器服务

这是服务重启或计算机重启后的 HCM 窗口:

这是服务重启或计算机重启后 Azure 门户中的混合连接状态:

注意:我们无法在 Azure 应用服务上安装 Oracle 客户端。但是我们必须使用 Oracle Managed Data Access

您需要从 NuGet 引用 Oracle 托管数据访问:

在您的 .NET 应用程序中使用以下命名空间:

需要另一个重要的更改:Oracle 连接字符串。 如果您使用旧的连接字符串,那么当您将其发布到 Azure 应用服务时它将不起作用。以下是您的 Oracle 连接字符串的外观:

connectionString = "数据源=(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = ora-server-1)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl.internal))));用户 id=walid;密码=xyz;"

【讨论】:

您好 Rajkumar,感谢您的回复。我能够连接它,但是当我尝试建立连接时它会抛出“错误:ORA-12537:网络会话:文件结束”的错误。你知道为什么会这样吗?

以上是关于Azure asp.net Web 应用程序尝试连接到 Oracle 运行时集成链接服务的主要内容,如果未能解决你的问题,请参考以下文章

部署到 Azure 应用服务时,Asp.net 成员资格提供程序无法连接到本地 SQL Server

在 Azure 中为 ASP.NET Core Web 应用设置 SQL 连接字符串

Azure AD 将多个应用程序连接到单个 Web API

将 ASP.NET 应用程序部署到 Azure Web 应用程序时出现 HTTP 403 错误

尝试将 ASP.NET CORE 2 Web API 应用程序连接到 WCF 服务

将 ASP.NET 应用程序部署到 Azure Web 应用程序时出现 HTTP 500.79 错误/System.UriFormatException