PlateSpin Migrate – Resolving source-server controller issues
June 29, 2010 Leave a comment
When PlateSpin Migrate tries to migrate a source server without .NET 2.0 problems can occur with the OfxController.exe or (Platespin Operations Framework Contoller).
Installing .NET 2.0 after the (Platespin Operations Framework Contoller) service failure might not solve the problem directly resulting in a faulty ofxcontroller.
Also there can be more reasons why you want to get rid of the PlateSpin modules and files on the source server.
When there is a Source Server as in our case due to the lack of .NET 2.0 functionality the PlateSpin Migrate Copy Workload process will stop at “5.2. Verifying Controller Connection” with a failure. Resolution
Logging on the source server can be found at: C:\Program Files\PlateSpin Portability Suite Server\Controller\EventLog\Active.log which can give more hints to why it isn’t working.
An example log indicating the .NET 2.0 problem:
<entry time=”2010-06-29T11:48:18.8828125Z” code=”StartHeartbeatServiceError” source=”PlateSpin.OperationsFramework.Controller.Heartbeat.Service”><message>
Unable to start the Heartbeat Service.
PlateSpin.OperationsFramework.Sdk.PlateSpinException: Unable to start the Heartbeat Service. —> System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS1583: ‘c:\WINNT\Temp\CSC169C.tmp’ is not a valid Win32 resource file
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
at System.Web.Services.Protocols.SoapClientType..ctor(Type type)
at System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
at PlateSpin.Soap.HttpClientWrapper.SoapHttpClientWrapper..ctor(IContextAdapter exceptionAdapter)
at PlateSpin.OperationsFramework.Sdk.Server.ControllerNotificationWebServiceAdapter..ctor(String address, Byte[] secret, Int32 nonce, String controllerId)
at PlateSpin.OperationsFramework.Sdk.ControllerNotificationClientFactory.GetControllerNotificationClient(String address, CertificateWarnings certificateWarning, ICredentials credentials, Int32 timeout, Byte[] secret, Int32 nonce, String controllerId)
at PlateSpin.OperationsFramework.Sdk.ControllerNotificationClientFactory.GetControllerNotificationClient(String address, CertificateWarnings certificateWarnings, Byte[] secret, Int32 nonce, String controllerId)
at PlateSpin.OperationsFramework.Controller.Heartbeat.Service.startupThread()
— End of inner exception stack trace —
</message></entry>
The following procedure should retract all PlatSpin components and allow for retry or recovery:
1. UnDiscover the source server to remove the server details from PlateSpin. Any Job saved for this server should be discarded aswell since it will cause an error. Each discovered server is linked via a GUID.
2. Uninstalling the “Platespin Operations Framework Contoller” service from the source server can be done by stopping the service and then running “OfxController.exe /uninstall”. OfxController.exe can be found in “c:\Prorgram Files\PlateSpin Portability Suite Server\Controller”
3. Once the service is uninstalled a reboot is required to remove the service since it will be marked for deletion.
4. After uninstalling the service you can remove “c:\Prorgram Files\PlateSpin Portability Suite Server” and “c:\windows\PlateSpin”.
After this procedure the problem on the source server should be resolved. For our example this can be done by installing the .NET 2.0 Framework on the server.
The server is now clean, fixed and ready for discovery. Hopefully it will now succeed 🙂