.NET Instrumentation - Сбой вызова функции для пользовательской сборки - Веб-приложения Azure
Я развернул свой профилировщик инструментария.NET в веб-приложениях Azure через Visual Studio 2012. Мой профилировщик выполняет инструментирование байт-кода, как показано ниже,
FunctionA()
{
--> Injected C# function Call
functionA's body
-->Injected C# function Call
}
Внедренный вызов функции находится в отдельной сборке DLL. В физической коробке сборка будет добавлена в GAC. Но в Azure он будет находиться в папке в папке веб-приложения, которая будет проверяться в файле web.config.
Используя DefineAssemblyRef из IMetaDataAssemblyEmit, я определяю сборку и ее функцию в каждом модуле, который загружается в процесс. Проблема в том, что введенный вызов функции работает только для функций модулей веб-приложения..! Другие модули, такие как System.Web.dll или System.Data.dll, не могут вызвать функцию, из-за чего веб-приложение Azure не удалось загрузить с ошибкой 502.
Вскоре внедрение в модули, отличные от веб-приложения, становится неудачным. Я думаю, это проблема безопасности при загрузке пользовательской сборки, и я попытался установить [assembly: System.Security.AllowPartiallyTrustedCallers]
а также PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
и некоторые другие атрибуты безопасности тоже.. ни один не помог.. Как сделать эту вспомогательную сборку для загрузки модулями.Net.? Есть ли какие-то другие специфические атрибуты безопасности, которые мне нужно установить для сборки, чтобы загрузить..?