c# - Azure Function 无法启动,错误为 "Method x in type y from assembly z does not have an implementation."

标签 c# azure azure-functions azure-webjobs

我的 Azure Function 项目(.NET Standard)有一个名为 Startup.cs 的类,它实现了一个接口(interface) IFunctionStartup,只要该类在项目中就会出现错误下面被抛出。如果我在类中显式实现该接口(interface),我可以通过此错误,但函数中的其他类将导致相同的问题。

Export: Unable to load one or more of the requested types.
Method 'RegisterDependencies' in type '*****.Startup' 
from assembly '*****.AzureFunction, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
does not have an implementation.

启动.cs

public class Startup : IFunctionStartup
{
    public void RegisterDependencies(ContainerBuilder builder, IConfiguration configuration)
    {
        builder.RegisterModule(new ApplicationRegistrar(configuration));        
    }

    // This explicit interface implementation gets me pass the error,
    // but doesn't address the root cause, because other classes will
    // start failing with the same error.

    //void IFunctionStartup.RegisterDependencies(ContainerBuilder builder, IConfiguration configuration)
    //{
    //    throw new System.NotImplementedException();
    //}
}

IFunctionStartup.cs

public interface IFunctionStartup
{
    void RegisterDependencies(ContainerBuilder builder, IConfiguration configuration);
}

这是完整的初始化日志:

Azure Functions Core Tools (2.3.199 Commit hash: fdf734b09806be822e7d946fe17928b419d8a289)
Function Runtime Version: 2.0.12246.0
[1/11/2019 2:29:54 PM] Starting Rpc Initialization Service.
[1/11/2019 2:29:54 PM] Initializaing RpcServer
[1/11/2019 2:29:54 PM] Building host: startup suppressed:False, configuration suppressed: False
[1/11/2019 2:29:54 PM] Reading host configuration file '*****\host.json'
[1/11/2019 2:29:54 PM] Host configuration file read:
[1/11/2019 2:29:54 PM] {
[1/11/2019 2:29:54 PM]   "version": "2.0"
[1/11/2019 2:29:54 PM] }
[1/11/2019 2:29:55 PM] Initializing Host.
[1/11/2019 2:29:55 PM] Host initialization: ConsecutiveErrors=0, StartupCount=1
[1/11/2019 2:29:55 PM] Starting JobHost
[1/11/2019 2:29:55 PM] Starting Host (HostId=*****-1139087863, InstanceId=2896b355-b2f7-4ae7-bfc4-403ec9c0d84d, Version=2.0.12246.0, ProcessId=247248, AppDomainId=1, InDebugMode=False, InDiagnosticMode=False, FunctionsExtensionVersion=)
[1/11/2019 2:29:55 PM] Loading functions metadata
[1/11/2019 2:29:55 PM] 1 functions loaded
[1/11/2019 2:29:55 PM] WorkerRuntime: dotnet. Will shutdown other standby channels
[1/11/2019 2:29:56 PM] Generating 0 job function(s)
[1/11/2019 2:29:56 PM] Found the following functions:
[1/11/2019 2:29:56 PM] *****.ExportComplianceDetailsFunction.Run
[1/11/2019 2:29:56 PM]
[1/11/2019 2:29:56 PM] Host initialized (754ms)
[1/11/2019 2:29:56 PM] Host started (767ms)
[1/11/2019 2:29:56 PM] Job host started
[1/11/2019 2:29:56 PM] The following 1 functions are in error:
[1/11/2019 2:29:56 PM] Export: Unable to load one or more of the requested types.
[1/11/2019 2:29:56 PM] Method 'RegisterDependencies' in type '*****.Startup' from assembly '*****.AzureFunction, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
[1/11/2019 2:29:56 PM]
Hosting environment: Production
Content root path: *****\netstandard2.0
Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.

最佳答案

我能够解决这个问题。根本原因是 Microsoft.EntityFrameworkCore.SqlServer 版本 2.2,目前与 Azure Functions 不兼容。

不幸的是,错误消息与根本原因完全无关,我只能通过反复试验找出不兼容的 nuget。

以下是有关如何排除故障的一些提示:

关于c# - Azure Function 无法启动,错误为 "Method x in type y from assembly z does not have an implementation.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54148906/

相关文章:

Azure Active Directory,允许的 token 受众似乎没有执行任何操作

c# - 显示 "Save as"窗口

c# - 什么分类算法最适合对法律文档图片进行分类?

azure - 在 SQL 中连接来自不同路径的文件

python - 生成的 Azure SAS 下载链接上的签名不匹配?

c# - 在Azure Function App中全局获取ExecutionContext

c# - 如何在一次交易中移动多个 blob?

c# - QR 代码触发对 Windows Phone 中安装的 native 应用程序的操作

c# - 最小化到通知区域并双击不打开它备份

azure - Azure Blob 存储中的文件 ID [AZURE-BLOB]