作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我还有一个带有 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/
我是一名优秀的程序员,十分优秀!