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

46

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

这是谁创建的?我能删除它吗?


1
创建一个空的Web应用程序并安装Microsoft.AspNet.WebApi NuGet包。你就可以开始了。不要在真实世界的项目中使用MVC模板,这是不必要的。 - tugberk
3个回答

92

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

"Data Source=localhost\SQLEXPRESS"


6
这应该是正确的答案。它简洁明了地回答了提问者的问题。 - Richard Collette
1
虽然不完全相关,但我被提示升级到SQLExpress,然后我将其替换为LocalDB '(localdb)\ProjectsV12',这个技巧有助于弥合差距。 - Stephen Patten
3
你的意思是,Visual Studio会查找app.config文件中的".\SQLEXPRESS"字符串,如果找到了,就会显示这个警告?如果是的话,那真的很愚蠢。 - Moby Disk
1
@MobyDisk 可能不是那么简单,但是没错,现在是2016年冬季,这仍然可以解决问题。 - user3638471
2
据我理解,OP的问题与我的相同。 我在项目中不使用SQLExpress。 我从未在项目中使用过SQLExpress。 那么为什么要更改连接字符串以查找我从未拥有且不想要的数据库连接? 对我来说,答案是删除默认连接,只留下那些引用实际SQ2014数据库实例的字符串。 - user1161391
显示剩余3条评论

20

这是由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软件包:

除了razor、MVC、Web Api软件包之外的所有软件包,例如:

  • jQuery
  • EntityFramework
  • jQuery Validation
  • jQuery UI
  • Modernizr
  • knockoutjs
  • MS Unobtrusive AJAX
  • MS Unobtrusive Validation

在解决方案资源管理器中:

  • /App_Data
  • /Content
  • /Images
  • /Scripts
  • /Views

但请注意,删除后,您将无法添加Web API帮助页面,例如(描述您的API)。


2
虽然这是清理项目所需的好知识,但这里没有任何东西可以修复错误。 - TravisO

4

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接