У меня есть веб-API ASP. NET, размещенный в веб-роли облачной службы. Я добавил класс WebRole, расширяющий RoleEntryPoint, который пытается получить контейнер Windsor с замком Io C, для которого установлены зависимости в StartUp.cs моего веб-API. Затем я хочу получить зарегистрированный мной экземпляр регистратора и использовать его в своей WebRole.
public class WebRole : RoleEntryPoint
{
private ICancellationTokenSourceProvider _cancellationTokenSourceProvider;
public override bool OnStart()
{
try
{
var container = IoC.GetContainer();
_cancellationTokenSourceProvider = container.Resolve<ICancellationTokenSourceProvider>();
}
catch (Exception)
{
throw;
}
return base.OnStart();
}
Однако, когда я пытаюсь развернуть это в облачной службе, я получаю следующее исключение:
Необработанное исключение: невозможно найти сборку Castle.Windsor, Version = 3.2.0.0, Culture = нейтральный , PublicKeyToken = 407dd0808d44fbd c '. в System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly () в System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType (BinaryAssemblyInfo assemblyInfo, имя строки) в System.Runtime.Serialization.FormattersMap.Obinary. .ctor (String objectName, String [] memberNames, BinaryTypeEnum [] binaryTypeEnumA, Object [] typeInformationA, Int32 [] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray AssemIdToAssemblyTable.info, SizedArray AssemIdToAssemblyTable. .ReadObjectWithMapTyped (запись BinaryObjectWithMapTyped) в System.Runtime.Serialization.Formatters.Binary .__ BinaryParser.Run () в System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize (HeaderHandlerCrossMandler, обработчик SerialCall, __BjectReader. methodCallMessage) в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (Stream serializationStr eam, обработчик HeaderHandler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) в System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject (MemoryStream stm) at System.AppDomain. [] blob) '[2020-06-19T16: 48: 01Z] Время последнего выхода: [19.06.2020, 16: 48: 05.617]. Последний код выхода: 0.
Я тщательно пытался найти причину и решение этой проблемы.
- Я попытался добавить перенаправления привязки к отсутствующей сборке в MyApi .dll.config и убедитесь, что он настроен на постоянное копирование.
- Я также удостоверился, что для сборки Copy Local также установлено значение true.
Однако , Я все еще получаю эту ошибку каждый раз, и веб-роль продолжает перезапускаться, пытаясь восстановиться после этого исключения.