CTP 버전과 관리하고 있는 VPC 가 많다 보니, 어느 VPC 에 어느 버전의 .NET 3.0 CTP 버전이 설치되어 있는지 몰라서 발생한 문제였습니다. ^^;
이 에러는... .NET 3.0 RC1 로 제작된 WCF 클라이언트 프로그램을 .NET 3.0 July CTP Runtime 에서 구동시키는 경우 나타나는 오류 메시지 유형입니다. ^^;
Unhandled Exception: System.InvalidOperationException:
Error while trying to reflect on attribute 'MessageContractAttribute' on type 'GetEmployeesRequest'.
See InnerException for details.
---> System.Reflection.CustomAttributeFormatException: 'WrapperName' property specified was not found.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
--- End of inner exception stack trace ---
at System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
at System.RuntimeType.GetCustomAttributes(Type attributeType, Boolean inherit)
at System.ServiceModel.Description.ServiceReflector.GetCustomAttributes(ICustomAttributeProvider attrProvider, Type attrType)
--- End of inner exception stack trace ---
at System.ServiceModel.Description.ServiceReflector.GetCustomAttributes(ICustomAttributeProvider attrProvider, Type attrType)
at System.ServiceModel.Description.ServiceReflector.GetSingleAttribute[T](ICustomAttributeProvider attrProvider)
at System.ServiceModel.Description.ServiceReflector.GetRequiredSingleAttribute[T](ICustomAttributeProvider attrProvider)
at System.ServiceModel.Description.TypeLoader.CreateTypedMessageDescription(Type typedMessageType, ICustomAttributeProvider returnAttrProvider, String returnValueName, String methodName, String defaultNS, String action, MessageDirectiondirection)
at System.ServiceModel.Description.TypeLoader.CreateMessageDescription(MethodInfo methodInfo, Boolean isAsync, String returnValueName, String defaultNS, String action, String wrapperName, String wrapperNamespace, MessageDirection direction)
at System.ServiceModel.Description.TypeLoader.CreateOperationDescription(ContractDescription contractDescription, MethodInfo methodInfo, MessageDirection direction, ContractReflectionInfo reflectionInfo, ContractDescription declaringContract)
at System.ServiceModel.Description.TypeLoader.CreateOperationDescriptions(ContractDescription contractDescription, ContractReflectionInfo reflectionInfo, Type contractToGetMethodsFrom, ContractDescription declaringContract, MessageDirection direction)
at System.ServiceModel.Description.TypeLoader.CreateContractDescription(ServiceContractAttribute contractAttr, Type contractType, Type serviceType, ContractReflectionInfo& reflectionInfo, Object serviceImplementation)
at System.ServiceModel.Description.TypeLoader.LoadContractDescriptionHelper(Type contractType, Type serviceType, Object serviceImplementation)
at System.ServiceModel.Description.TypeLoader.LoadContractDescription(Type contractType)
at System.ServiceModel.ChannelFactory`1.CreateDescription()
at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
at System.ServiceModel.ClientBase`1..ctor()
at AnotherServiceClient..ctor() in D:\....\AnotherService.cs:line 720
at DP2Client.Program.Main(String[] args) in D:\....\Program.cs:line 21
참고로, .NET 3.0 이 설치되지 않은 PC 에서 실행시키면 다음과 같은 오류가 나옵니다.
Unhandled Exception: System.IO.FileNotFoundException:
Could not load file or assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
The system cannot find the file specified.
File name: 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at DP2Client.Program.Main(String[] args)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].