【发布时间】:2021-01-18 12:40:35
【问题描述】:
我收到以下错误:
System.InvalidOperationException: Unable to resolve service for type
'Microsoft.AspNetCore.NodeServices.INodeServices' while attempting to activate
'ConvertHighchart.Controllers.runNodeScriptController'.
我的控制器代码是这样的:
using Microsoft.AspNetCore.NodeServices;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
namespace ConvertHighchart.Controllers
{
[ApiController]
[Route("[controller]")]
public class runNodeScriptController : ControllerBase
{
private readonly INodeServices _nodeServices;
public runNodeScriptController(INodeServices nodeServices)
{
_nodeServices = nodeServices;
}
[HttpPost]
public async Task<IActionResult> Post()
{
var result = "";
try
{
result = await _nodeServices.InvokeExportAsync<string>("test_nodejs_script",
"generateHighChart",
"abc");
}
catch (System.Exception ex)
{
}
return Ok(result);
}
}
}
谢谢
【问题讨论】:
-
你有什么问题?我们在您的帖子中可以看到,您的控制器需要 INodeServices 并且错误告诉我们该服务未注册。我们现在知道,问题出在您的控制器之外 - 通常它没有在 Startup.ConfigureServices 中注册。
-
正如其他人提到的,请先在 ConfigureServices() 方法中注册服务。另外,关于使用节点服务的相同场景在github上的这个"Obsoleting Microsoft.AspNetCore.SpaServices and Microsoft.AspNetCore.NodeServices"中讨论,你可以查看它。
标签: node.js asp.net-core