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

use*_*899 38 configuration sql-server-express asp.net-web-api

我在VS 2010下创建了一个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>
Run Code Online (Sandbox Code Playgroud)

谁创造了这个?我可以删除吗?

小智 79

将连接字符串"Data Source =.\ SQLEXPRESS"的这一部分更改为

"数据源= localhost\SQLEXPRESS"

  • 这应该是正确的答案.它简明扼要,回答OP问题. (5认同)
  • 您是说Visual Studio在app.config文件中查找字符串".\ SQLEXPRESS",如果找到它,它会显示此警告吗?如果这样那真是愚蠢. (3认同)
  • 据我了解 OP 的问题,它与我的相同。我不在我的项目中使用 SQLExpress。我从未在我的项目中使用过 SQLExpress。那么为什么我要更改连接字符串来查找我从未拥有也不想要的数据库连接呢?在我看来,答案是删除默认连接并只保留那些引用实际 SQ2014 数据库实例的字符串。 (2认同)

Max*_*lev 17

它是由Visual Studio为您创建的.原因是Web API项目是MVC项目的子类.实际上,Web API项目可以包含:Web应用程序和Web API本身.

至于这个项目是MVC项目的子类,你可以获得所有这些额外的功能.

你可以删除所有额外的东西,只要你不需要它.你可以删除的东西:

在WebConfig中:

  • / configSections/section name ="entityFramework"......
  • /的ConnectionStrings
  • /system.web/pages
  • /system.web/profile
  • /system.web/membership
  • /system.web/roleManager
  • /的EntityFramework

您可能还想删除

NuGet包:

除了剃刀,MVC,Web Api包之外的所有东西都像:

  • jQuery的
  • 的EntityFramework
  • jQuery验证
  • jQuery UI
  • Modernizr的
  • knockoutjs
  • MS Unobtrusive AJAX
  • MS不引人注目的验证

在Solution Explorer中:

  • /应用程序数据
  • /内容
  • /图片
  • /脚本
  • /浏览次数

但要小心,因为在删除之后,您将无法添加Web API帮助页面(其中描述了您的API).

  • 虽然这是必须清理项目的好知识,但这里没有任何内容可以修复错误。 (2认同)

Bob*_*her 5

如果您安装了更高版本的 SQL Express 本地数据库,您还可以将连接字符串更改为新的 SQL 2014+ 语法“Data Source=(LocalDb)\MSSQLLocalDB;...”。