gpt4 book ai didi

asp.net-mvc - 如何构造一个基地址为当前部署域的Uri?

转载 作者:行者123 更新时间:2023-12-03 03:17:03 24 4
gpt4 key购买 nike

我还有一个带有 webapi 的 asp.net mvc 应用程序。当我的 MVC Controller 获取用户请求时,它们会调用 webapi 层以从数据库获取实际数据。

由于我稍后可能会将 WebAPI 移至单独的项目,因此我通过在 Controller 代码中创建 HttpClient 来调用 webapi。

下面的代码在本地部署时运行良好,但是当我将其部署在Azure网站中时,由于基地址是localhost而失败。

var baseAddress = new Uri("https://localhost");
using (var handler = new HttpClientHandler { UseCookies = false })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
var message = new HttpRequestMessage(HttpMethod.Get, uri);
var result = await client.SendAsync(message);
...
}

问题:假设 webapi 和 web 服务器将在同一域中运行,我如何创建基地址是部署代码的域而不是硬编码的 Uri?

最佳答案

这只是一个简单的 C# 代码

Request.Url.GetLeftPart(UriPartial.Authority)

这将为您提供正在调用的当前 url 的左侧部分。但是,如果您在 WorkerRole 中使用它,这将不起作用,它必须是 Web 请求的一部分。 (即 HttpContext 必须有效且不为空)

关于asp.net-mvc - 如何构造一个基地址为当前部署域的Uri?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23343513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com