|  28.10.2015, 17:36 | #1 | 
| Участник | AIF ServiceGroup с разными сервисами 
			
			Всем привет! У меня вопрос по AIF. Есть группа сервисов ServiceGroup в АОТ. В неё можно добавлять различные сервисы 1, 2 ... Сервисы могут быть разные, использовать разные контракты да и возвращать различные данные. Если добавить в сервисную группу различные сервисы и посмотреть wsdl сервиса, который работает по net.tcp, то wsdl открывается нормально. Но если этот сервис развернуть на http и попробовать просмотреть wsdl то выводится куча ошибок: Цитата: 
		
			[BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)] System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType) +0 System.Reflection.RuntimeMethodInfo.get_Signature() +82 System.Reflection.RuntimeMethodInfo.GetParameters() +38 System.Runtime.Serialization.ClassDataContractCriticalHelper.EnsureMethodsImported() +188 System.Runtime.Serialization.DataContractCriticalHelper.CreateDataContract(Int32 id, RuntimeTypeHandle typeHandle, Type type) +793 System.Runtime.Serialization.DataContractCriticalHelper.GetDataContractSkipValidation(Int32 id, RuntimeTypeHandle typeHandle, Type type) +117 System.Runtime.Serialization.XsdDataContractExporter.GetSchemaTypeName(Type type) +85 System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter..ctor(OperationDescription description, DataContractFormatAttribute dataContractFormatAttribute, DataContractSerializerOperationBehavior serializerFactory) +412 System.ServiceModel.Description.DataContractSerializerOperationBehavior.GetFormatter(OperationDescription operation, Boolean& formatRequest, Boolean& formatReply, Boolean isProxy) +308 System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch) +69 System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime dispatch) +120 System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) +4106 System.ServiceModel.ServiceHostBase.InitializeRuntime() +90 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +175 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +740 System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +125 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901 [ServiceActivationException: The service '/MicrosoftDynamicsAXAif60/ServiceGroup/xppservice.svc' cannot be activated due to an exception during compilation. The exception message is: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B).] System.Runtime.AsyncResult.End(IAsyncResult result) +624474 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +196075 System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +166 Ах2012 R3 | 
|  | 
|  05.11.2015, 18:16 | #2 | 
| Участник | 
			
			в двух словах - впоймал это же, что нашел. 1) https://community.dynamics.com/ax/b/...ult-0x8007000b В двух словах дата контракт должен содержать только парм методы + (если СЮ7) нужен хотфикс 2) https://community.dynamics.com/ax/b/...correct-format В двух словах set Enable 32-bit Application = True Для Appl pool in IIS. 2)-е стоит уже давно - не помогло на одном сервисе 1) помогло - сейчас переформатирую еще 3 сервиса и попробую еще раз. Ед хотел обратить внимаие - речь идет не только о дата контрактах входящих но и о респонсах в инбоунд портах. Удачи, Виталий | 
|  | 
|  05.11.2015, 22:21 | #3 | 
| Боец | Цитата: 
		
			Сообщение от f18
			   в двух словах - впоймал это же, что нашел. 1) https://community.dynamics.com/ax/b/...ult-0x8007000b В двух словах дата контракт должен содержать только парм методы + (если СЮ7) нужен хотфикс 2) https://community.dynamics.com/ax/b/...correct-format В двух словах set Enable 32-bit Application = True Для Appl pool in IIS. 2)-е стоит уже давно - не помогло на одном сервисе 1) помогло - сейчас переформатирую еще 3 сервиса и попробую еще раз. Ед хотел обратить внимаие - речь идет не только о дата контрактах входящих но и о респонсах в инбоунд портах. Удачи, Виталий | 
|  | 
|  06.11.2015, 10:07 | #4 | 
| Участник | Цитата: 
		
			 двух словах - впоймал это же, что нашел. 1) https://community.dynamics.com/ax/b/...ult-0x8007000b В двух словах дата контракт должен содержать только парм методы + (если СЮ7) нужен хотфикс 2) https://community.dynamics.com/ax/b/...correct-format В двух словах set Enable 32-bit Application = True Для Appl pool in IIS. 2)-е стоит уже давно - не помогло на одном сервисе 1) помогло - сейчас переформатирую еще 3 сервиса и попробую еще раз. Ед хотел обратить внимаие - речь идет не только о дата контрактах входящих но и о респонсах в инбоунд портах. 2) По второй ссылке тоже ходил, установил параметр как сказано, и даже, кажется, переразворачивал сервис - не помогло. Собственно я и решил поинтересоваться, может кто делал одну ServiceGroup с разными сервисами, которые могут принимать разные контракты и при этом нормально разворачиваться на IIS'е. Попробую еще поиграться с настройками, если появится время. | 
|  | 
|  13.11.2015, 01:02 | #5 | 
| Участник | 
			
			У меня, к сожалению, задачка не терпит, поэтому рыл до тех пор пока не дошел до следующих выводов (дополнительно к написанному). Inbound port и мы принимает некие дата контракты, и ответом отвечаем что мол получили или "что в ответ на Ваш запрос сообщаем" - все в общем стандартно. Другое дело что для унификаации ответов - сделали базовый дата контракт с ответом, и его расширяли в каждом конкретном случае. При использовании file адаптера или net.tcp - все работает - вопросов нет, а вот с HTTP адаптером пришлось откзаться от идеи делать наследование в респонсах. Версия 2012 R3 без CU | 
|  | 
| Теги | 
| aif, ax2012, service | 
|  | 
| 
 |