2012-12-07 26 views
5

Tôi đang sử dụng SQL Server LocalDB cho một trang web.Cách khởi động SQL Server LocalDB qua IIS

SQL Server LocalDB được cài đặt và cơ sở dữ liệu được tạo trong khi Thiết lập. Một phiên bản được chia sẻ được tạo thông qua LocalDBCreateInstance, StartLocalDBInstanceLocalDBShareInstance.

Trang web có thể kết nối thành công với cơ sở dữ liệu nếu cá thể được bắt đầu.

Tuy nhiên, nếu phiên bản được dừng lại, nó sẽ không được tự động bắt đầu. Việc truy cập cơ sở dữ liệu (khi cá thể dừng) từ một ứng dụng giao diện điều khiển làm cho cá thể được bắt đầu.

Vì vậy, điều này có vẻ là một số loại sự cố cho phép.

Hồ bơi ứng dụng chạy dưới danh tính AppPool. Tuy nhiên, việc chuyển sang Dịch vụ mạng hoặc Hệ thống cục bộ không giải quyết được sự cố.

Hồ bơi ứng dụng được định cấu hình để tải hồ sơ người dùng của nó và thuộc tính "setProfileEnvironment" cũng được đặt thành true. (Cả hai Cài đặt được yêu cầu như được mô tả herehere).

Tôi đã giám sát việc truy cập cơ sở dữ liệu bằng Sysinternal Process Monitor nhưng không tìm thấy bất kỳ mục nhập "Truy cập bị từ chối" nào.

Tôi cũng đã cố gắng gọi StartLocalDBInstance từ chính trang web (trong Global.asax). Cuộc gọi trả về thành công (giá trị trả về là S_OK), nhưng cá thể vẫn được dừng lại.

Trả lời

6

Đó là nhược điểm của việc sử dụng LocalDB trong IIS - cá thể được sở hữu bởi thông tin đăng nhập tương tác của bạn và quy trình cá thể chỉ có thể được bắt đầu bằng thông tin đăng nhập này. Vì IIS chạy như một tài khoản dịch vụ, nó không thể khởi động cá thể LocalDB thuộc về tài khoản đăng nhập tương tác của bạn. Bạn có thể sử dụng một cá thể LocalDB thuộc sở hữu của tài khoản dịch vụ IIS, nhưng lưu ý rằng bạn có thể gặp các vấn đề về hồ sơ người dùng - LocalDB yêu cầu hồ sơ người dùng được tạo và tải, trong khi IIS sử dụng hồ sơ người dùng nhẹ đôi khi có thể không được tạo và tải hoàn toàn.

Xem hai bài đăng trên blog này để thảo luận chi tiết hơn về cách chạy LocalDB trong IIS đầy đủ. Tôi chỉ giới thiệu nó cho môi trường phát triển và sử dụng SQL Express dựa trên dịch vụ để sản xuất.

  1. Part 1: User Profile
  2. Part 2: Instance Ownership
+2

Làm thế nào đáng tiếc. –

+0

Tôi bắt đầu một [công cụ nhỏ tại CodePlex] (http://localdbcompanion.codeplex.com/) để đơn giản hóa việc chia sẻ và bắt đầu của cá thể tự động (được gọi là "v11.0") với nhóm ứng dụng mặc định. Nó sẽ cần phải được mở rộng để bao gồm tên dụ tùy chỉnh và hồ bơi ứng dụng khác mặc dù. Và tôi sẽ chỉ khuyên bạn nên sử dụng nó trong môi trường phát triển :-) –

+0

Lạ. Nếu bạn có thể thiết lập "Load User Profile" trong IIS thành true, thì nó sẽ hoạt động. Ngoài ra, tôi nghĩ rằng Express đã được khá nhiều deprecated trong lợi của LocalDB ... – dudeNumber4

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