Configuration ASP.NET Web Api:项目需要SQL Server Express

Configuration ASP.NET Web Api:项目需要SQL Server Express,configuration,asp.net-web-api,sql-server-express,Configuration,Asp.net Web Api,Sql Server Express,我在VS2010下创建了一个Web API项目。 在我切换到VS 2012之后,我总是收到一个警告: Web项目“xxx”需要SQL Server Express,而不是 已安装在此计算机上。[……] 我不想安装此SQL Server Express。我使用IIS进行调试。 如何禁用此依赖关系 我在我的web.config中也注意到了这一点: <connectionStrings> <add name="DefaultConnection" connectionStri

我在VS2010下创建了一个Web API项目。 在我切换到VS 2012之后,我总是收到一个警告:

Web项目“xxx”需要SQL Server Express,而不是 已安装在此计算机上。[……]

我不想安装此SQL Server Express。我使用IIS进行调试。 如何禁用此依赖关系

我在我的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>


这是谁创造的?我可以删除它吗?

它是Visual Studio为您创建的。原因是WebAPI项目是MVC项目的一个子类。实际上,WebAPI项目可以同时包含两个部分:Web应用程序和WebAPI本身

因为这个项目是MVC项目的一个子类,所以您可以获得所有这些额外的特性

你可以删除所有多余的东西,只要你不需要它。您还可以删除以下内容:

在网络配置中:

  • /configSections/section name=“entityFramework”
  • /连接字符串
  • /system.web/pages
  • /system.web/profile
  • /system.web/membership
  • /system.web/rolemager
  • /实体框架
您可能还想删除

NuGet软件包:

除了razor、MVC和Web Api包之外的所有东西,如:

  • jQuery
  • 实体框架
  • jQuery验证
  • jQuery用户界面
  • 现代化者
  • 淘汰赛
  • MS不引人注目的AJAX
  • MS不引人注目的验证
在解决方案资源管理器中:

  • /应用程序数据
  • /内容
  • /图像
  • /剧本
  • /观点

但是要小心,因为删除之后,您将无法添加Web API帮助页(例如,它描述了您的API)。

将连接字符串“Data Source=。\SQLEXPRESS”的这部分更改为


“Data Source=localhost\SQLEXPRESS”

如果安装了更高版本的SQL Express local db,还可以将连接字符串更改为新的SQL 2014+语法“Data Source=(LocalDb)\MSSQLSLocalDB;…”。

创建一个空的Web应用程序并安装Microsoft.AspNet.WebApi NuGet软件包。你可以走了。不要将MVC模板用于现实世界的东西。这是不必要的。这应该是正确的答案。它很简洁,回答了OP的问题。虽然不完全相关,但我被提示升级到SQLExpress,然后将其替换为LocalDB'(LocalDB)\ProjectsV12'此技巧有助于弥合您所说的Visual Studio在app.config文件中查找字符串“.\SQLExpress”,如果它找到该字符串,是否显示此警告?如果是这样的话,那真的很愚蠢。@MobyDisk可能没有那么简单,但是是的,2016年冬天到了,这仍然解决了问题。我理解OP的问题,它和我的问题是一样的。我在项目中不使用SQLExpress。我从未在我的项目中使用过SQLExpress。那么,为什么我要更改一个连接字符串来查找一个我从来没有也不想要的db连接呢?在我看来,答案是删除默认连接,只留下那些引用实际SQ2014数据库实例的字符串。虽然这是清理项目的好方法,但这里没有任何东西可以修复错误。