编辑:从.Net6更改为.Net8时出现的问题已减少.从.net6更改为.net7可以很好地工作.但是为什么呢?
我试着按照这个教程来做. https://learn.microsoft.com/en-us/visualstudio/containers/tutorial-multicontainer?view=vs-2022个
他们已经将他们的代码推送到 https://github.com/MicrosoftDocs/vs-tutorial-samples/tree/master/docker/ComposeSample个
我下载了它,它起作用了. 我将项目的.Net版本和构建/运行项目的Linux版本从.Net6更改为.Net8,但调用WebApi时连接被拒绝.
它闻起来像是更严格的违约,但我发现很难确定和修复它.
所以:你能下载上面的样例并让它运行到最新的.Net,目前是.Net8吗?当然,我想知道为什么这是/曾经是个问题.
问题的前半部分:
我已经让WebFrontEnd运行并try 调用WebApi.在调用WebApi时,前端会收到Connection Refused.
当我将浏览器指向http://localhost:53845/Counter时,WebApi运行正常.我怀疑问题是WebApi在与WebFrontEnd预期不同的端口上可用.据我所知,WebFrontEnd希望在端口80上找到WebApi?
当通信发生在Docker环境中时,我如何调试通信?
呼叫码:
using (var client = new System.Net.Http.HttpClient())
{
// Call *mywebapi*, and display its response in the page
var request = new System.Net.Http.HttpRequestMessage();
// webapi is the container name
request.RequestUri = new Uri("http://webapi/Counter");
var response = await client.SendAsync(request);
string counter = await response.Content.ReadAsStringAsync();
ViewData["Message"] = $"Counter value from cache :{counter}";
}