You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure ML Studio输入端口数据集未连接,如何对接ASP.NET获取用户输入?

解决ASP.NET中模型Web服务"Input port dataset is unconnected"错误的实操方案

我之前在做ASP.NET集成机器学习模型的项目时,刚好碰到过一模一样的错误,踩了不少坑,现在把整理好的解决方法分享给你,刚好匹配你要实现的「网页接收用户文件→模型处理→返回结果」的需求:

1. 先搞清楚模型服务的输入端口要求

这个错误本质就是模型的输入端口没和实际的用户数据流绑定上,首先得确认你的模型(不管是ML.NET、自定义训练的模型还是第三方服务)的输入定义:

  • 如果是用ML.NET,检查你的ModelInput类的属性,必须和训练模型时的输入字段完全对应,比如要接收文本文件内容的话可以这么定义:
    public class ModelInput
    {
        // 这里的属性名、类型要和模型训练时的输入一致
        public string FileContent { get; set; }
    }
    
  • 如果是部署成独立Web服务(比如Azure ML服务),去看服务的文档/测试页面,确认输入端口的参数名、数据格式(比如是JSON数组还是单值)。

2. 在ASP.NET里搭好文件上传的接收逻辑

在Controller里写一个处理文件上传的Action,把用户上传的文件转换成模型能识别的输入格式:

[HttpPost]
public async Task<IActionResult> RunPrediction(IFormFile uploadedFile)
{
    // 先校验用户是否传了文件
    if (uploadedFile == null || uploadedFile.Length == 0)
    {
        return View("Error", "请选择要上传的文件");
    }

    // 读取文件内容,这里根据模型需求调整(比如是文本就读成字符串,二进制就读成byte[])
    string fileContent;
    using (var streamReader = new StreamReader(uploadedFile.OpenReadStream()))
    {
        fileContent = await streamReader.ReadToEndAsync();
    }

    // 调用模型做预测
    var predictionResult = await _predictionEnginePool.PredictAsync<ModelInput, ModelOutput>(
        new ModelInput { FileContent = fileContent }
    );

    // 把结果返回给网页,比如渲染结果视图
    return View("PredictionResult", predictionResult);
}

3. 确保模型服务的输入端口真的连上了

这一步是解决错误的核心:

  • 如果是ASP.NET项目直接集成ML.NET模型,要在Program.cs里正确注册PredictionEnginePool,让模型和输入端口绑定:
    builder.Services.AddPredictionEnginePool<ModelInput, ModelOutput>()
        .FromFile(Path.Combine(builder.Environment.ContentRootPath, "YourModelFile.mlnet"));
    
  • 如果是调用外部模型Web服务,要保证请求的参数名和服务的输入端口名完全匹配,比如服务要求输入参数是input_dataset,那请求的JSON就得是:
    {
        "input_dataset": {
            "values": [["这里填读取到的文件内容"]]
        }
    }
    

4. 调试验证,排除小问题

  • 在Controller里加日志,打印接收到的文件内容、传给模型的输入数据,确认数据没丢、格式没出错;
  • 先用Postman测试你的API接口,确保文件上传和模型调用流程正常,再集成到前端网页;
  • 如果是外部服务,去看服务的监控日志,确认请求有没有正确到达、参数格式对不对。

5. 前端网页的文件上传表单要写对

最后在ASP.NET视图里加一个文件上传表单,注意必须设置enctype="multipart/form-data",不然传不了文件:

<form asp-action="RunPrediction" method="post" enctype="multipart/form-data">
    <div>
        <label>选择文件:</label>
        <input type="file" name="uploadedFile" accept=".txt,.csv" />
    </div>
    <button type="submit" class="btn btn-primary">上传并获取结果</button>
</form>

按照这些步骤一步步来,应该就能解决那个“Input port dataset is unconnected”的错误,顺利实现你想要的功能啦。

内容的提问来源于stack exchange,提问作者Priya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:44:51