我只是试图打开并运行我的一个团队项目,它是.NET Web API项目,它被配置为自托管。以下配置如下:
var host = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:3434")
.Build();
host.Run();
[Fiddler]与'0.0.0.0'的连接失败。错误: AddressNotAvailable(0x2741)。 System.Net.Sockets.SocketException 请求的地址在其上下文中无效0.0.0.0:3434
我不知道还能做什么。有什么建议吗?
答案 0 :(得分:1)
尝试使用
var host = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://*:3434")
.Build();
host.Run();
来源文档Introduction to hosting in ASP.NET Core
服务器网址
string
键:
urls
。设置为以分号(;
)分隔的URL前缀列表 服务器应该响应哪个。例如,http://localhost:123
。 域名/主机名可以替换为&#34;*
&#34;表示服务器 应该使用以下方式监听任何IP地址或主机上的请求 指定的端口和协议(例如,http://*:5000
或https://*:5001
)。必须包含协议(http://
或https://
) 与每个URL。前缀由配置的服务器解释; 支持的格式因服务器而异。
new WebHostBuilder()
.UseUrls("http://*:5000;http://localhost:5001;https://hostname:5002")
主机启动并运行后,确保控制器配置了正确的路由并调用了正确的URL,否则将返回404 Not Found
。
例如,以下控制器
[Route("")]
public class RootController : Controller {
[HttpGet] //Matches GET /
public IActionResult Get() {
return Ok("hello world");
}
[HttpGet("echo/{value}] //Matches GET /echo/anything-you-put-here
public IActionResult GetEcho(string value) {
return Ok(value);
}
}
具有上述主机配置的应分别与以下URL匹配
http://localhost:3434/
http://localhost:3434/echo/stack-overflow