'device not ready' lors de l'utilisation de File.Copy () en C #

J'essaye de déplacer des bases de données d'un server de SQL à un autre. Je fais ceci par une console écrite en C #. La méthodologie est la suivante. Je détache d'abord la database, déplace datatables et les files journaux vers le nouvel location, puis j'attache les files à partir de là. Cependant, après avoir détaché le file, je ne suis pas en mesure de copyr datatables et les files journaux. L'erreur que je reçois est: "l'appareil n'est pas prêt". J'utilise des paths de réseau pour la source et la destination. J'utilise le file File.Copy () pour déplacer les files et j'ai des permissions pour créer des files dans les dossiers respectifs

À l'intuition, «périphérique n'est pas prêt» n'est pas une exception C # générée par la command File Copy. Les exceptions possibles sont:

UnauthorizedAccessException, ArgumentException, ArgumentNullException, PathTooLongException, DirectoryNotFoundException, FileNotFoundException, IOException, NotSupportedException 

Donc, cette 'erreur' pourrait éventuellement être quelque chose qui a généré en interne, selon les autres commentaires, plus d'informations sont nécessaires. Afin de déboguer ce problème, je suggère ce qui suit

  • Placez un point d'arrêt dans votre code où la string de text "périphérique n'est pas prêt" est présente dans votre code
  • Vérifiez les deux paths dans votre code sont des paths valides
  • Est-ce que votre programme est construit pour gérer les paths UNC ou les paths de files?
  • Une exception est peut-être interceptée en mode silencieux, mais vous devrez déboguer pour le découvrir
  • Si vous essayez de déplacer des bases de données, avez-vous arrêté l'instance de service Windows associée à la database? Tapez services.msc à partir de la command run, puis faites défiler jusqu'à SQL Server ( votre nom d'instance SQL ), puis arrêtez le service à partir de là. Cela déverrouillerait le file de database.

Bonne chance.