2013-09-23 131 views
10

Đã xảy ra lỗi khi nhận thông tin nhà cung cấp từ cơ sở dữ liệu. Điều này có thể được gây ra bởi Entity Framework bằng cách sử dụng một chuỗi kết nối không chính xác. Kiểm tra các ngoại lệ bên trong để biết chi tiết và đảm bảo rằng chuỗi kết nối là chính xác.Nhà cung cấp không trả lại chuỗi ProviderManifestToken Entity Framework

Nội Ngoại lệ: {"The provider did not return a ProviderManifestToken string."}

Tôi đã tìm kiếm chủ đề khác như có rất nhiều với các lỗi tương tự, nhưng tôi dường như không thể tìm ra giải pháp.

Tôi đang sử dụng VS2012 Professional và SQL Server 2012. Tôi có thể kết nối với máy chủ bằng Trình khám phá máy chủ bằng xác thực cửa sổ. Tôi đang xây dựng một ứng dụng webforms với nhiều tầng. Một trong số chúng chứa tầng khung Entity của tôi chứa lớp Ngữ cảnh của tôi.

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    </system.web> 

    <connectionStrings> 
    <add name="MYSQLSERVER" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=myComputer\MYSQLSERVER;Trusted_Connection=true"></add> 
    </connectionStrings> 
</configuration> 

Đây là ứng dụng trong lớp thư viện lớp Entity Framework của tôi.

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

Ngoài ra, tôi đã cố gắng thay đổi loại defaultConnectionFactory app.config để

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 

nhưng nó không thay đổi bất cứ điều gì.

Tôi không thực sự chắc chắn bất kỳ thay đổi nào tôi đang thực hiện thậm chí có nghĩa là điều khiến tôi lo lắng. Chắc chắn tôi có thể tìm thấy các giải pháp trực tuyến và cố định vấn đề của tôi, nhưng tôi thực sự muốn hiểu web.config và những gì tất cả điều này có nghĩa là. Trên đầu trang của việc tìm kiếm một giải pháp cho vấn đề này, bất cứ ai có thể chỉ cho tôi đi đúng hướng để học tập web.configs?

Xin cảm ơn sự giúp đỡ của bạn.

+0

Vâng, đã nhận được điều này và dường như chỉ đơn giản là tên máy chủ không chính xác. –

Trả lời

3

Tôi đã sửa nó.

Chỉ cần đặt "." cho localmachine trong nguồn dữ liệu như sau:

<add name="MYSQLSERVER" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=.\MYSQLSERVER;Trusted_Connection=true"></add>  
</connectionStrings> 
5

Trong trường hợp của tôi, đó là phiên bản SQL Server của tôi không chạy. Tôi chỉ đơn giản là bắt đầu dịch vụ và mọi thứ hoạt động tốt. Hy vọng điều này sẽ giúp ai đó xuống đường.

0

..và cuối cùng (?!?) Đừng quên xây dựng dự án của bạn với 'Ưu tiên 32 bit' được kiểm tra vì điều này sẽ loại bỏ BUOWN KNG tạo thông báo lỗi này (có thông báo ngoại lệ bên trong = ' tràn Arithemtic ')

1

tôi gặp vấn đề này khi tôi cố gắng để kết nối với mysql, lý do là tôi quên thêm 'password' trong 'connectionStrings'

+0

Tôi phải đối mặt với cùng một vấn đề và giải quyết nó khi tôi thấy gợi ý của bạn tôi quên mật khẩu, chuỗi kết nối nhà cung cấp đã không đi kèm với nó. nó chỉ có một giữ chỗ mà tôi đã phải thay thế bằng mật khẩu của tôi :-) –

2

đây là một nguyên nhân có thể:
tôi có cả máy chủ HTTP của tôi (ASP.NET) và máy chủ MySQL/Aurora trên AWS (hiểu rằng AWS không phải là một phần của các bình luận của OP).
IP của máy tính để bàn của tôi (trên thực tế, của chúng tôi) được đưa vào danh sách trắng trong nhóm bảo mật của máy chủ MySQL/Aurora, vì vậy mọi thứ hoạt động hoàn hảo để phát triển.
Nhưng IP của máy chủ ASP.NET là không phải là được đưa vào danh sách trắng cho trường hợp MySQL/Aurora, do đó yêu cầu kết nối EF của máy chủ ASP bị từ chối và đã gây ra ngoại lệ được ghi chú ở đầu chuỗi này.
Bí truyền, nhưng có thể điều này giúp một người nào đó.

+0

Tôi đã có vấn đề chính xác này bản thân mình – dlchambers

0

Trong trường hợp của tôi paramter là v12.0, tôi đã thay đổi để v11.0 và nó đang làm việc

0

tôi đã cùng một vấn đề, cài đặt lại Npgsql với người quản lý gói đã làm các trick. Dường như là một vấn đề về versionning.