Невозможно интегрировать OpenXML (documentformat.openxml. *) В платформу бота C #, появляется ошибка «Autofac.Core.DependencyResolutionException» - PullRequest
0 голосов
/ 19 декабря 2018

Чтобы уточнить файл powerpoint (.pptx), я использовал OpenXML SDK (DocumentFormat.OpenXML), который отлично работает как консольное приложение.Однако, поскольку требовалось реализовать то же самое в среде ботов, я добавил требуемый пакет nuget, а именно 'DocumentFormat.OpenXml. *'.Вызов нового диалога в messageController выдает ошибку в этой строке:

await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());

Бот работает нормально в эмуляторе, пока я не добавлю пакет nuget 'DocumentFormat.OpenXml. *'.Тем не менее, он выбрасывает упомянутую ошибку.Не удалось найти соответствующие статьи.

полный код метода:

public class MessagesController : ApiController
{

    public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {

        try
        {
            if (activity.GetActivityType() == ActivityTypes.Message)
            {
                await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
            }
            else
            {
                HandleSystemMessage(activity);
            }
        }
        catch (Exception ex)
        {
            activity.CreateReply(ex.Message);
        }
        var response = Request.CreateResponse(HttpStatusCode.OK);
        return response;
    }

Исключение:

Произошла ошибка при активацииконкретная регистрация.Смотрите внутреннее исключение для деталей.Регистрация: Activator = IPostToBot (DelegateActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.IPostToBot], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> Во время произошла ошибкаактивация определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = QueueDrainingDialogTask (ReflectionActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.QueueDrainingDialogTask (Microsoft.Bot.Builder.Dialogs.Internals.IPostToBot)], Lifetime = Autofac.Core.Lifetime = TimeShared, Ownership = OwnedByLifetimeScope ---> Произошла ошибка во время активации определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = IBotToUser (DelegateActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.IBotToUser], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> Ошибка произошла во времяактивация определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = AlwaysSendDirect_BotToUser (ReflectionActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.AlwaysSendDirect_BotToUser (Microsoft.Bot.Builder.Dialogs.Internals.IBotToUser), Microsoft.Bot.Builder.DialAsBort.Sol .Instal.Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> Произошла ошибка во время активации определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = IConnectorClient (DelegateActivator), Services = [Microsoft.Bot.Connector.IConnectorClient], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Нет, Ownership = ExternallyOwned ---> Произошла ошибка во время активацииконкретная регистрация.Смотрите внутреннее исключение для деталей.Регистрация: Activator = ConnectorClientFactory (DelegateActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.IConnectorClientFactory], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Совместное использование = Нет, Право собственности = Внешне нарушены правила ---> Наследованиепо типу: 'System.Net.Http.WebRequestHandler'.Производные типы должны либо соответствовать доступности безопасности базового типа, либо быть менее доступными.(См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.)

Внутреннее исключение:

Произошла ошибка при активации определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = QueueDrainingDialogTask (ReflectionActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.QueueDrainingDialogTask (Microsoft.Bot.Builder.Dialogs.Internals.IPostToBot)], Lifetime = Autofac.Core.Lifetime = TimeShared, Ownership = OwnedByLifetimeScope ---> Произошла ошибка во время активации определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = IBotToUser (DelegateActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.IBotToUser], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> Ошибка произошла во времяактивация определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = AlwaysSendDirect_BotToUser (ReflectionActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.AlwaysSendDirect_BotToUser (Microsoft.Bot.Builder.Dialogs.Internals.IBotToUser), Microsoft.Bot.Builder.DialAsBort.Sol.Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Shared, Ownership = OwnedByLifetimeScope ---> Произошла ошибка во время активации определенной регистрации.Смотрите внутреннее исключение для деталей.Регистрация: Activator = IConnectorClient (DelegateActivator), Services = [Microsoft.Bot.Connector.IConnectorClient], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = Нет, Ownership = ExternallyOwned ---> Произошла ошибка во время активацииконкретная регистрация.Смотрите внутреннее исключение для деталей.Регистрация: Activator = ConnectorClientFactory (DelegateActivator), Службы = [Microsoft.Bot.Builder.Dialogs.Internals.IConnectorClientFactory], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Совместное использование = Нет, Право собственности = Внешне нарушены правила ---> Наследованиепо типу: 'System.Net.Http.WebRequestHandler'.Производные типы должны либо соответствовать доступности безопасности базового типа, либо быть менее доступными.(См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.)

Трассировка стека:

в Autofac.Core.Resolving.InstanceLookup.Activate (создатель IEnumerable 1 parameters) at Autofac.Core.Resolving.InstanceLookup.<Execute>b__5_0() at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func 1) в Autofac.Core.Resolving.InstanceLookup.Execute () в Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance (ISharingLifetimeScope currentOperationScope, регистрация IComponentRegistration, параметры IEnumerable 1 parameters) at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable 1) в Autofac.Core.Lifetime.LifetimeScope.ResolveComponent (экземпляр объекта IComponentRegence * регистрации экземпляра объекта IComponent * регистрации).ResolveService (контекст IComponentContext, служба Service, параметры IEnumerable 1 parameters) at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable 1) в Autofac.ResolutionExtensions.Resolve [TService] (контекст IComponentContext) в Microsoft.Bot.Builder.Dialogs.Conversation.d__11.MoveNext () в D: \ a \1 \ s \ CSharp \ Library \ Microsoft.Bot.Builder.Autofac \ Dialogs \ Conversation.cs: строка 0 --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.Bot.Builder.Dialogs.Conversation.d__6.MoveNext () в D: \ a \ 1 \ s \ CSharp \ Library \ Microsoft.Bot.Builder.Autofac \ Dialogs \ Conversation.cs: line108 --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.GetResult ()в CredentialsAutomation.MessagesController.d__0.MoveNext () в C: \ Users \ Tanu \ source \ repos \ CredentialsAutomation \ CredentialsAutomation \ Controllers \ MessagesController.cs: строка 27

...