locked
Urgent SqlMetaDataStore Error RRS feed

  • Question

  • I have created a remote file sync provider. I'm using WCF to serve as a bridge between the source and destination provider.
    I'm also using the Metadatastore that comes with the V1 of the sync framework. Everything works good on my dev box. But when I deploy to an X64 Server with windows 2003 installed. I get the following error:

    Could not load type 'Microsoft.Synchronization.MetadataStorage.SqlMetadataStore' from assembly 'Microsoft.Synchronization.MetadataStorage, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'

    I have tried installing the latest sql server compact in the server (3.5 sp1) and also Sql Server Compact 2005. But the error still occurs. The
    Microsoft.Synchronization.MetadataStorage assembly is on the server.

    The error occurs when trying to instantiate an instance of the provider class. The class has a member of type SqlMetadataStore.

    I used the
    Sync101 RCA with Metadata Store v1.0 as a basis for my remote file sync provider.

    I would gladly appreciate any help.

    German Afanador


    Tuesday, January 13, 2009 9:23 PM

Answers

  •  

    Hi German,

     

    Did you code your sync application with the X86 version of the Sync Framework? If it is the case, when you deploy the X86 bits on X64 OS, they X64 IIS will look for X64 assemblies by default.

     

    The workaround are:

    1. Re-build your application in X64 with X64 version of Sync Framework

    2. If you still want to use the current X86 application, you need to enable Wow for IIS. In your X64 machine,  run -- cscript adsutil.vbs set "w3svc/AppPools/Enable32BitAppOnWin64" 1. You can set it in inetmgr UI as well.

     

    Thanks,

    Dong

    Tuesday, January 13, 2009 9:42 PM
    Moderator
  • After uninstalling the sync framework on the host wcf server, installing the 32bit version of the sync framework, making sure that all the provider assemblies were 32bit and refreshing the IIS app pool.

    Everything started working.


    Thanks Dong.



    Wednesday, January 14, 2009 2:34 PM

All replies

  •  

    Hi German,

     

    Did you code your sync application with the X86 version of the Sync Framework? If it is the case, when you deploy the X86 bits on X64 OS, they X64 IIS will look for X64 assemblies by default.

     

    The workaround are:

    1. Re-build your application in X64 with X64 version of Sync Framework

    2. If you still want to use the current X86 application, you need to enable Wow for IIS. In your X64 machine,  run -- cscript adsutil.vbs set "w3svc/AppPools/Enable32BitAppOnWin64" 1. You can set it in inetmgr UI as well.

     

    Thanks,

    Dong

    Tuesday, January 13, 2009 9:42 PM
    Moderator
  • Thank you for your reply Dong.

    I believe our IIS 6.0 is running int 32bit mode. Because if I try to put my custom provider build with 64bit, when I try to load the svc file on a browser it complains about running 64bit assemblies in 32bit.

    Also running a metada explorer on the server IIS it shows that
    w3svc/AppPools/Enable32BitAppOnWin64 is set to 1.

    Do you need more info?

    Any more suggested workarounds?

    German Afanador


    Wednesday, January 14, 2009 1:26 AM
  • After uninstalling the sync framework on the host wcf server, installing the 32bit version of the sync framework, making sure that all the provider assemblies were 32bit and refreshing the IIS app pool.

    Everything started working.


    Thanks Dong.



    Wednesday, January 14, 2009 2:34 PM