2011-08-03 33 views
10

Tôi không thể tìm ra vấn đề cho ngoại lệ này là gì.Ngoại lệ: loại khởi tạo cho 'system.data.sqlclient.sqlconnection'?

Loại initializer cho 'System.Data.SqlClient.SqlConnection' ném một ngoại lệ

nỗ lực đầu tiên: Tôi đã sử dụng các dịch vụ WCF để làm cho một số ứng dụng nhỏ. Nó hoạt động tốt và tôi có thể sử dụng LINQ đúng cách. Sau 2 hoặc 3 ngày. Có lẽ sau khi tôi đóng Visual studio và tải lại dự án. Ngoại lệ xuất hiện.

Nỗ lực thứ 2 cũng giống nhau. Tôi tạo một dự án khác và nó hoạt động tốt cho đến khi tôi làm điều gì khác (tôi không thay đổi bất kỳ mã nào)

SQL Server hoạt động tốt và tôi có thể kết nối thông qua SQL Management Studio mà không gặp vấn đề gì.

Nhấp chuột vào Lỗi gỡ lỗi dẫn tôi đến chuỗi kết nối từ tệp LINQ.

Điều gì có thể là vấn đề? Tôi đã cố gắng tìm kiếm nhưng không thể tìm thấy câu trả lời để giải quyết vấn đề này.

Cảm ơn bạn

Trả lời

26

Điều này rất có thể có nghĩa là có lỗi trong tệp app.config của bạn, ví dụ: XML hoặc các thành phần không mong muốn được tạo thành không đúng. Lỗi xảy ra vì các trường tĩnh bên trong SqlConnection đọc từ app.config để xác định mức độ chi tiết của dấu vết như được mô tả ở đây: http://msdn.microsoft.com/en-us/library/ms254503.aspx

+2

trong trường hợp của tôi, tôi quên bao gồm các thẻ – tennisBoy

+0

@tennisBoy Trong trường hợp của tôi chỉ có nội dung rỗng cho configSections được Screwing lên. Vì vậy, ứng dụng sẽ suy nghĩ rất tệ nếu bạn có '' trong tệp app.config của mình. – RBT

1

Tôi cũng phải đối mặt với ngoại lệ đó một lần khi tôi mở lại dự án của mình. Trong trường hợp của tôi, tệp Config có thẻ và khóa trống như bạn có thể thấy bên dưới. Tôi đã xóa thẻ appSettings để khắc phục sự cố.

<? Xml version = "1.0" encoding = "utf-8"?>

< configuration>

< appSettings>

< thêm key = "" value = "site" />

</appSettings>

< configSections>

</configSections>

</configuration>

1

Kiểm tra xem bạn đã cài đặt hotfix Windows sau - KB2840628 - cho .NET FW 4.0 (sử dụng Bảng điều khiển Windows-> Progr AMS + Tính năng và nhấp vào 'View installed updates') và nếu như vậy thử gỡ bỏ cài đặt nó ...

https://connect.microsoft.com/VisualStudio/feedback/details/793500/sqlclr-typeinitializationexception-in-sqlconnection-since-kb2840628

Nó giải quyết các vấn đề đối với tôi.

+0

Đó là KB2840628 tạo ra sự cố nếu bạn có giá trị tùy chỉnh bên trong trong tệp app.config ... –

1

Trong trường hợp của tôi, vấn đề đã được sửa đổi tên thẻ trong app.config tập tin do nhầm lẫn chỉ so sánh file app.config của bạn với một số khác cũ .. Bạn sẽ tìm hiểu vấn đề ...

0

Tôi đã đọc rất nhiều về vấn đề này, nhưng không ai đề cập đến nguyên nhân sau của lỗi này.

Một số người dùng của chúng tôi, người đã có một phiên bản cũ của VMWare Xem khách hàng mà sau đó đã được nâng cấp , bây giờ đang nhìn thấy vấn đề này.

Loại initializer cho 'System.Data.SqlClient.SqlConnection' ném một ngoại lệ

  • Người dùng chỉ có chỉ là phiên bản cũ của VMWare Xem khách hàng cài đặt không có vấn đề.
  • Người dùng chỉ có phiên bản mới VMWare View Client được cài đặt không có vấn đề gì.
  • Nhưng người dùng có phiên bản cũ VMWare View Client nhưng hiện đã được nâng cấp, có sự cố và tiếp tục ngay cả khi chúng tôi gỡ cài đặt VMWare View Client rồi cài đặt phiên bản mới.

Chúng tôi đã cố gắng cài đặt lại .Net Framework và Visual Studio Tools cho Office, nhưng điều này không khắc phục được gì.

Chúng tôi chưa tìm thấy bản sửa lỗi, nhưng tôi hy vọng điều này sẽ giúp người dùng khác.

Btw, chúng tôi đã kiểm tra app.config 's và web.config' s, và tất cả đều tốt (và hoạt động hoàn hảo với phần còn lại của người dùng của chúng tôi).

Một phát hiện khác:

  • Nếu người dùng của bạn có quyền quản trị cục bộ, vấn đề này không xảy ra sau khi nâng cấp VMWare Xem khách hàng.
  • Nếu họ không có quyền quản trị cục bộ, sự cố sẽ xảy ra.

Vì vậy, ... chúng tôi hiện đang bị kẹt.

Tôi có máy tính xách tay thử nghiệm và tôi có thể tạo lại lỗi mỗi khi ID người dùng của tôi không có quyền Quản trị viên cục bộ. Nếu sau đó chúng tôi cấp quyền Quản trị viên cục bộ và tôi đăng nhập lại, lỗi sẽ biến mất.

Và tôi đã thêm một tải trọng của try..catch trong mã của tôi, và thấy rằng các ngoại lệ xảy ra trong một dòng mã này:

MikesDataContext dc = new MikesDataContext() 

Vì vậy, nó thực sự tạo kết nối mà ném ngoại lệ. Nó không nhận được như xa như các dòng mã tiếp theo mà sử dụng kết nối này.

1

Xóa app.config và sau đó chạy chương trình

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