2012-12-04 41 views
33

Tôi tạo ra một dự án Web API dưới VS 2010. Sau khi tôi chuyển sang VS 2012, tôi luôn nhận được một cảnh báo:ASP.NET Web Api: Dự án đòi hỏi SQL Server Express

Dự án Web 'xxx' yêu cầu SQL Server Express, không phải là được cài đặt trên máy tính này. [...]

Tôi không muốn cài đặt SQL Server Express này. Tôi sử dụng IIS để gỡ lỗi. Làm cách nào để vô hiệu hóa sự phụ thuộc này?

Tôi cũng nhận thấy điều này trong web.config của tôi:

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

Ai tạo này? Tôi có thể xóa cái này không?

+1

Tạo ứng dụng web trống và cài đặt gói Microsoft.AspNet.WebApi NuGet. Bạn tốt để đi. Không sử dụng các mẫu MVC cho công cụ thực tế. Nó chỉ là không cần thiết. – tugberk

Trả lời

15

Nó được tạo bởi Visual Studio cho bạn. Lý do là các dự án Web API là một lớp con của các dự án MVC. Và thực tế, dự án Web API có thể chứa cả hai: một ứng dụng web và chính API Web.

Theo như dự án này là một lớp con của một dự án MVC, bạn sẽ có được tất cả các tính năng bổ sung này.

Bạn có thể xóa tất cả nội dung bổ sung đó mà bạn không cần. Những điều bạn có thể xóa thêm:

Trong webconfig:

  • /configSections/phần name = "entityFramework" ...
  • /connectionStrings
  • /system.web/pages
  • /system.web/profile
  • /system.web/membership
  • /system.web/roleManager
  • /entityFramework

Bạn có lẽ cũng sẽ muốn xóa

gói

NuGet:

Tất cả mọi thứ trừ dao cạo, MVC, gói Web Api như:

  • jQuery
  • EntityFramework
  • jQuery Validation
  • jQuery UI
  • Modernizr
  • knockoutjs
  • MS Không phô trương AJAX
  • MS Không phô trương Validation

Trong Solution Explorer:

  • /App_Data
  • /Content
  • /Images
  • /Scripts
  • /Lần đọc

Nhưng hãy thận trọng, bởi vì sau khi xóa mà bạn sẽ không thể để thêm trang Web API Trợ giúp ví dụ (mô tả API của bạn).

+0

Cảm ơn bạn đã cung cấp thông tin này. – user437899

+0

Mặc dù đây là kiến ​​thức tốt để làm sạch dự án của bạn, nhưng không có gì ở đây khắc phục lỗi. – TravisO

64

Thay đổi này là một phần của chuỗi kết nối "Data Source =. \ SQLEXPRESS" để

"Data Source = localhost \ SQLEXPRESS"

+4

Đây phải là câu trả lời đúng. Nó là súc tích và trả lời câu hỏi OP. –

+1

Mặc dù không hoàn toàn liên quan, tôi đã được nhắc nâng cấp lên SQLExpress mà sau đó tôi đổi chỗ cho LocalDB '(localdb) \ ProjectsV12' mẹo này đã giúp thu hẹp khoảng cách –

+3

Bạn đang nói rằng Visual Studio tìm chuỗi ". \ SQLEXPRESS" trong các tập tin app.config, và nếu nó tìm thấy nó, nó sẽ hiển thị cảnh báo này? Nếu vậy thì thật ngốc. –

1

bạn cũng có thể thay đổi chuỗi kết nối đến SQL 2014+ cú pháp mới "Data Source = (LocalDb) \ MSSQLLocalDB; ..." nếu bạn có phiên bản mới hơn của SQL Express cục bộ db được cài đặt.

Các vấn đề liên quan