Действительно ли возможно выполнить блок.NET (dll) от vbscript?

Проблема заключалась в том, что моя группа журналов была в другом аккаунте.

Я смог осознать свою проблему, когда попытался перечислить все группы журналов, начиная с общего префикса, например, вместо «my-lambda» я использовал «my»:

aws logs describe-log-groups --log-group-name-prefix /aws/lambda/my

Как только я понял, что ни одной группы журналов не было в списке для префикса, который я ожидал, многие группы журналов и другие префиксы показывали некоторые группы журналов, я понял, что мне нужно использовать другую учетную запись. Я использовал профили CLI AWS для доступа к этой учетной записи с помощью этого использования:

aws logs describe-log-groups --profile prd --log-group-name-prefix /aws/lambda/my

, затем я увидел много ожидаемых групп журналов, подтверждающих их существование в правильной учетной записи.

Исправление для получения необходимых мне журналов должно быть таким:

aws logs get-log-events --profile prd --cli-input-json file://cli-get-log-events.json

К сожалению, я получаю следующую ошибку:

Произошла ошибка (ResourceNotFoundException) при вызове GetLogEvents операция: указанный поток журнала не существует.

blockquote>

Существует упомянутое решение для этого сообщения об ошибке по адресу: Имя потока журнала AWS Cloudwatch не распознано

Но в моем случае, я думаю, что я просто скопировал неправильное имя потока журнала. Я снова взял имя потока из консоли и вставил его в мой входной файл cli.

Мое последнее использование было:

aws logs get-log-events --cli-input-json file://cli-get-log-events.json --profile prd > logs-xyz.json

6
задан deostroll 18 October 2011 в 07:09
поделиться

3 ответа

Я думаю, что необходимо сначала сделать блок.NET COM-видимым включением атрибута ComVisible в файле AssemblyInfo.cs:

[ComVisible(true)]

Посмотрите эту страницу на MSDN: Упаковка блока для COM

И затем в VBScript можно получить доступ к тем компонентам теми же средствами, Вы получаете доступ к COM-компонентам, т.е. использованию CreateObject или Сервер. CreateObject как в:

Set testObj = CreateObject("MyNamespace.MyType")

Я думаю, что GAC мог бы даже быть обязательным для доступа к нему от VBScript, но я havn't, сделанный это этот путь вокруг, таким образом, я не уверен.

Почему Вы хотели бы сделать это в VBScript? Почему не только делают консольное приложение.NET, которое сделало бы то, что Ваш VBScript был предназначен, чтобы сделать? Так как DLL уже находится на.NET, которая не должна быть проблемой, правильно?


Править: Другой способ сделать это могло бы быть должно создать консоль EXE вместо DLL (или EXE, который оборачивает DLL), что можно звонить от VBScript как нормальная исполняемая программа и исследовать результаты возврата. В зависимости от многих факторов это могло бы быть более гибко, чем поддерживают код COM.

14
ответ дан 8 December 2019 в 13:03
поделиться

VBScript может только выполнить код от COM-объектов, таким образом, необходимо было бы создать обертку COM для кода.NET, и затем необходимо смочь назвать код .NET.

2
ответ дан 8 December 2019 в 13:03
поделиться

Не непосредственно.

Если бы блок.NET был выставлен как COM-компонент, то это могло быть.

2
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: