【问题标题】:AspNetCore InvalidOperationExceptionAspNetCore InvalidOperationException
【发布时间】: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


【解决方案1】:

如果您在向端点发送 POST 请求时看到此错误,您是否将 services.AddNodeServices(); 放入 Startup 中?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多