web-dev-qa-db-fra.com

ASP.NET Web Api: le projet nécessite SQL Server Express

J'ai créé un projet d'API Web sous VS 2010. Après mon passage à VS 2012, je reçois toujours un avertissement:

Le projet Web "xxx" nécessite SQL Server Express, qui n'est pas installé sur cet ordinateur. [...]

Je ne souhaite pas installer ce SQL Server Express. J'utilise IIS pour le débogage. Comment puis-je désactiver cette dépendance?

J'ai également remarqué cela dans mon web.config:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|[...].mdf;Initial Catalog=[...];Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

Qui a créé ça? Puis-je supprimer cela?

38
user437899

Il a été créé par Visual Studio pour vous. La raison en est que les projets d'API Web sont une sous-classe de projets MVC. Et en fait, le projet d'API Web peut contenir à la fois: une application Web et l'API Web elle-même.

Dans la mesure où ce projet est une sous-classe d'un projet MVC, vous obtenez toutes ces fonctionnalités supplémentaires.

Vous pouvez supprimer tous ces éléments supplémentaires dans la mesure où vous n'en avez pas besoin. Les choses que vous pouvez également supprimer:

Dans WebConfig:

  • / configSections/section name = "entityFramework" ...
  • / connectionStrings
  • /system.web/pages
  • /system.web/profile
  • /system.web/membership
  • /system.web/roleManager
  • /Cadre d'entité

Vous voudriez probablement aussi supprimer

packages NuGet:

Tout sauf les rasoirs, MVC, les packages Web Api comme:

  • jQuery
  • Cadre d'entité
  • validation jQuery
  • jQuery UI
  • Modernizr
  • knockoutjs
  • MS AJAX discret
  • Validation discrète MS

Dans l'Explorateur de solutions:

  • /Données d'application
  • /Contenu
  • /Images
  • / Scripts
  • / Vues

Mais soyez prudent, car après cette suppression, vous ne pourrez pas ajouter la page d'aide de l'API Web par exemple (qui décrit votre API).

17
Max Shmelev

Remplacez cette partie de la chaîne de connexion "Data Source =.\SQLEXPRESS" par

"Source de données = localhost\SQLEXPRESS"

77
Stevodevo

vous pouvez également remplacer la chaîne de connexion par la nouvelle syntaxe SQL 2014+ "Data Source = (LocalDb)\MSSQLLocalDB; ..." si une version ultérieure de SQL Express local db est installée.

2
Bob Provencher