Azure 函数计时器 SQL 客户端失败

Posted

技术标签:

【中文标题】Azure 函数计时器 SQL 客户端失败【英文标题】:Azure function Timer SQL client failing 【发布时间】:2019-10-31 15:04:02 【问题描述】:

我的 .net 核心 azure 计时器功能突然因此错误而失败。

此平台不支持 System.Data.SqlClient。

我不确定发生了什么变化以及为什么会开始失败。

当我在本地运行代码时,它运行良好,没有错误。附加我在 Azure 门户上看到的内容 有什么建议吗?

【问题讨论】:

你用的System.Data.SqlClient是什么版本的? 还要确保你是函数 v2 【参考方案1】:

我不确定发生了什么变化以及为什么会开始失败。

根据您的错误消息,您似乎已将 System.Data.SqlClient 版本从 4.5.1 升级到 4.6。

如果像我说的那样,在与运行时程序集相关的引用方面似乎存在一些问题,请参阅此issue。

如果您不需要最新的稳定版本 4.6.0,只需恢复到 4.5.1 即可。

否则解决方法是自行加载程序集。右键单击Function项目并编辑.csproj,在下面添加项目以将相关程序集复制到输出目录。

<!-- For publish -->
    <ItemGroup>
        <None Include="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
        </None>
    </ItemGroup>

<!-- For local debug -->
    <Target Name="CopyToBin" BeforeTargets="Build">
        <Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll" DestinationFolder="$(OutputPath)\bin" />
    </Target>

【讨论】:

以上是关于Azure 函数计时器 SQL 客户端失败的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops 构建管道上的数据库项目失败

使用 SQL 客户端将时间触发的 Azure 函数与数据库连接

使用 Blob 服务客户端查找 azure 帐户密钥失败(azure python sdk)

Gmail SMTP 客户端在 Azure 上失败

C# SQLConnection 到 SQL Azure 挂起

长时间运行的 Azure WebJob 失败 - 客户端无法在指定的超时时间内完成操作