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

运行func host start时ConnectionStringSetting未找到错误求助

解决方案:CS0246 找不到ConnectionStringSetting类型错误

错误原因

编译错误CS0246的核心原因是CosmosDB绑定属性的参数名称错误:在新版Microsoft.Azure.WebJobs.Extensions.CosmosDB包中,指定连接字符串的参数名是ConnectionString,而非你代码中使用的ConnectionStringSetting。

修复步骤

1. 修正绑定参数名称

将两个CosmosDB属性中的ConnectionStringSetting替换为ConnectionString。

2. 修正代码拼写错误

代码中jsonToRetun是拼写错误,改为jsonToReturn;同时建议返回更新后的计数器对象(updatedCounter),确保前端能拿到最新的访问次数。

3. 验证NuGet包版本

确保项目已安装最新稳定版的Microsoft.Azure.WebJobs.Extensions.CosmosDB,可通过以下命令更新:

dotnet add package Microsoft.Azure.WebJobs.Extensions.CosmosDB

修正后的完整代码

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Net.Http;
using System.Text;
using Microsoft.Azure.WebJobs.Extensions.CosmosDB;

namespace Company.Function
{
    public static class GetResumeCounter
    {
        [FunctionName("GetResumeCounter")]
        public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            [CosmosDB(databaseName: "AzureResume", containerName:"Counter", ConnectionString = "AzureResumeConnectionString", Id="1", PartitionKey="1")] Counter counter,
            [CosmosDB(databaseName: "AzureResume", containerName:"Counter", ConnectionString = "AzureResumeConnectionString", Id="1", PartitionKey="1")] out Counter updatedCounter,             
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            updatedCounter = counter;
            updatedCounter.Count += 1;
            
            var jsonToReturn = JsonConvert.SerializeObject(updatedCounter);

            return new HttpResponseMessage(System.Net.HttpStatusCode.OK)
            {
                Content = new StringContent(jsonToReturn, Encoding.UTF8, "application/json")
            };
        }
    }

    // 确保你已定义Counter类(可放在本文件或单独文件中)
    public class Counter
    {
        public string Id { get; set; }
        public string PartitionKey { get; set; }
        public int Count { get; set; }
    }
}

额外注意事项

  • 确认local.settings.json中已正确配置连接字符串:
    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "AzureResumeConnectionString": "你的CosmosDB连接字符串"
      }
    }
    
  • 若问题仍存在,尝试清理并重新构建项目:
    dotnet clean
    dotnet build
    func host start
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:13:10