2011-02-01 5 views
2

J'essaie de publier un site simple avec Visual Studio 2010. J'utilise Web Deploy. Je reçois l'erreur suivante:Problème de publication du site Web ASP.NET 4.0

Error 1 Web deployment task failed.(Object of type 'dbFullSql' and path 'Data Source=.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf;Integrated Security=True;User Instance=True' cannot be created.)

Object of type 'dbFullSql' and path 'Data Source=.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf;Integrated Security=True;User Instance=True' cannot be created. Cannot connect to the database 'c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf'. An attempt to attach an auto-named database for file c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 0 0 WebApplication3

J'ai supprimé le fichier aspnetdb.mdf à l'aide SQL Server Management Studio, et je suis toujours à obtenir cette erreur. Quel pourrait être le problème?

+0

La suppression du fichier fonctionne généralement pour le problème d'auto-association. Etes-vous sûr d'avoir supprimé/DROP le fichier DB, plutôt que de le détacher de SQL? –

+0

non, n'a pas fonctionné – LuckyStar

+0

j'ai enlevé du studio de gestion de serveur de SQL (l'a supprimé); il a disparu du noeud Databases; J'ai également couru une requête aspnetdb DROP DATABASE (après la suppression) et j'ai reçu le message: – LuckyStar

Répondre

1

J'ai rencontré le même problème (mais avec SQL Server au lieu de aspnetdb.mdf) et c'est une solution qui a fonctionné pour moi. Je sais que la question est ancienne, mais je la poste pour de futures références. Sachez qu'en utilisant cette solution, votre base de données sera supprimée avant le déploiement de la nouvelle base de données. Ainsi est une opération dangereuse et ne fait que du développement. Tout d'abord, je pense que l'option de supprimer la base de données devrait être disponible via une case à cocher dans les paramètres du projet, mais nous sommes obligés de modifier le fichier projet manuellement. L'entrée à la est l'article How to: Deploy a Database With a Web Application Project. Dans la section "Redéploiement à l'aide de scripts générés automatiquement", nous pouvons lire que le paramètre ScriptDropsFirst=True dans le script généré automatiquement PreSource element la base de données cible sera supprimée avant le déploiement de la nouvelle base de données.

Donc, pour ce faire: Ouvrez le fichier .csproj dans le bloc-notes, trouver la section intitulée PreSource (un pour chaque débogage de configuration/release/...) et ajouter l'élément ScriptDropsFirst="True" à sorte que l'intégralité de la balise xml est le formulaire <PreSource Path="Data Source=LOCALHOST\SQLEXPRESS%3bInitial Catalog=myDB%3bIntegrated Security=True" ScriptSchema="True" ScriptData="False" CopyAllFullTextCatalogs="False" ScriptDropsFirst="True" />

En utilisant ces paramètres, je suis capable de republier mes bases de données comme je le souhaite.


Side note: Cette solution ne sera guère travailler dans un environnement de production où vous ne pouvez pas déposer vos bases de données dès que vous avez besoin de mettre à jour les solutions. Au lieu de cela, j'opterais pour utiliser des scripts personnalisés pour faciliter la mise à jour, comme présenté dans la section "Déploiement de modifications de base de données à l'aide de scripts personnalisés" dans le même article.

Questions connexes