2013-11-14 14 views
15

Tôi đột nhiên bắt đầu gặp lỗi trong ứng dụng web asp.net MVC 4 của mình.Thao tác này yêu cầu kết nối tới cơ sở dữ liệu 'chủ'

Lỗi này là:

hoạt động này đòi hỏi một kết nối đến cơ sở dữ liệu 'thầy'. Không thể để tạo kết nối với cơ sở dữ liệu 'chính' vì kết nối cơ sở dữ liệu ban đầu đã được mở và thông tin đăng nhập đã bị xóa khỏi chuỗi kết nối. Cung cấp kết nối chưa mở.

Không có gì thay đổi trong mã - và quyền truy cập cơ sở dữ liệu là tốt trong suốt phần còn lại của mã.

Nó dừng lại trên dòng này:

var filteredContacts = dc.EAContactLists.Where(o => teams.Contains(o.Team)).ToList(); 

Tôi bị mất trên thế này.

+0

bản sao có thể có của [EF4 Code-First gây ra InvalidOperationException] (http://stackoverflow.com/questions/4324052/ef4-code-first-causes-invalidoperationexception) –

Trả lời

29

Thử đặt Persist Security Info = True trong chuỗi kết nối của bạn.

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn rất nhiều! Để lưu ý - tất cả những gì tôi đã làm là cài đặt khung công tác 4.5.1 trên 4.5.0. Chúc mừng, Mark – Mark

+7

Câu trả lời này, ít nhất một mình, đã không làm việc cho tôi. – JosephDoggie

+0

Đã xảy ra sự cố này khi sử dụng Công cụ Power Framework của Entity để đảo ngược thiết kế cơ sở dữ liệu bị khóa chặt xuống Mã đầu POCO. Thêm điều này vào chuỗi kết nối đã khắc phục được sự cố, cảm ơn rất nhiều. – Apogee

0

Xin chào thực sự cố này vẫn tiếp nếu bạn đang cố gắng để thực hiện thay đổi trong lược đồ như tạo bảng hoặc thay đổi một số đối tượng ...

Và bạn không có đặc quyền để làm điều đó ..

Nếu bạn đang làm việc với MVC và cơ sở dữ liệu của bạn đã thoát trong máy chủ hơn vấn đề này có thể được giải quyết với mã

Database.SetInitializer<EmployeeContext>(null); 

chỉ cần thêm đoạn mã này trong file Global.asax trong phương thức Application_Start tổ chức sự kiện.

4

Tôi gặp sự cố này và trong trường hợp của tôi, giải quyết vấn đề bằng cách thêm "Bảo mật tích hợp = True" vào chuỗi kết nối. Điều này chỉ áp dụng nếu bạn đang kết nối với DB bằng Xác thực Windows. Hy vọng nó giúp.

+0

Chỉ cần đến điều này và nhận ra tôi đã upvoted nó lần cuối cùng tôi đã có vấn đề này. Bạn đã giúp tôi hai lần. Nếu tôi có thể upvote bạn một lần nữa tôi sẽ ....... – JimmyB

4

Lỗi này xảy ra với tôi và không có lỗi nào ở trên hoạt động. Xấu hổ, tôi nhận ra rằng tôi đã bỏ lỡ một dấu chấm phẩy từ chuỗi kết nối. Có thể hữu ích ...

+0

Đã lưu thời gian của tôi..maaaaaan :) – ksg

+1

Đã xảy ra với tôi khi tôi quên PASSWORD trong chuỗi kết nối. – frakon

0

Đảm bảo bạn không chạy Fiddler. Tạm thời vô hiệu hóa lưu lượng truy cập với F12 đã giải quyết được vấn đề cho tôi.

2

Thêm Integrated Security=True để xác thực cửa sổ.Điều này làm việc cho tôi.

0

Nếu bạn đang làm việc trên cửa sổ xác thực:

  • Bạn có thể thêm "Integrated Security = True" để connectionString của bạn.

Đối với xác thực người dùng:

  • Bạn phải thêm thông tin xác thực SQL Server ("uid = yourusername; Password = yourpassword;") để connectionString của bạn.
Các vấn đề liên quan