Asp.net core .Net核心在web应用程序中使用web api
这是我关于stackoverflow的第一个问题,希望这不是因为我搜索能力差 我最近尝试创建一个带有.net内核的日志服务器。 我启动了一个web api项目,并创建了如下内容:Asp.net core .Net核心在web应用程序中使用web api,asp.net-core,Asp.net Core,这是我关于stackoverflow的第一个问题,希望这不是因为我搜索能力差 我最近尝试创建一个带有.net内核的日志服务器。 我启动了一个web api项目,并创建了如下内容: [HttpPost("/log")] public IActionResult Post([FromQuery] string msg, [FromQuery] string stackTrace) { ... } [HttpPost("log")] pu
[HttpPost("/log")]
public IActionResult Post([FromQuery] string msg, [FromQuery] string stackTrace)
{
...
}
[HttpPost("log")]
public IActionResult Post([FromBody] Log data)
{
...
}
我将每个日志存储为一个对象,可以使用console.log显示其值。然后我尝试使用websocket将日志推送到web客户端
我希望修改本教程以满足我的需要
教程项目运行良好。在web客户端之间发送和接收消息
但是,我无法将教程web应用程序项目与我的web api控制器集成。“/log”api提供404响应
因此,我决定启动一个web应用程序模板,并向其添加一个默认的web api值控制器(该控制器具有属性[Route(“api/[controller]”)
加载的默认网页很好,但api/值给出404响应
向web应用程序添加具有路由属性的控制器的正确方法是什么
非常感谢 假设您有以下控制器:
[Route("api/[controller]")]
public class MyLogController : Controller
{
[HttpPost("log")]
public string Post()
{
// your code here...
}
}
然后你应该发布到URL/api/mylog/log
。WebApi中URL的默认结构是/api/
。上述方法定义的自定义路由将附加到默认url。此外,路线定义不需要以/
开头
有关更多详细信息,请参阅:
希望这有帮助。因为这两个参数都是完整的句子字符串,所以最好将它们放在文章正文中 一、 特别是,建议不要通过查询字符串发送堆栈跟踪。查询字符串具有最大长度(取决于浏览器,可能还取决于web服务器),堆栈跟踪可以包含大量文本 讨论细节: 这样做:
[HttpPost("/log")]
public IActionResult Post([FromQuery] string msg, [FromQuery] string stackTrace)
{
...
}
[HttpPost("log")]
public IActionResult Post([FromBody] Log data)
{
...
}
使用日志类
public class Log
{
public string StackTrace {get;set;}
public string Message {get;set;}
}
因为路线上有多余的“/”而无法工作!!但奇怪的是,它在一个webapi项目中工作