Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Gặp lỗi tự động tạo tệp cơ sở dữ liệu SQLExpress cho trang web sử dụng AspNetSqlMembershipProvider, nhưng chuỗi kết nối là với SQL Server 2005

Theo nhận xét của bạn, có vẻ như bạn chưa định cấu hình rõ ràng một nhà cung cấp vai trò cho trang web của mình.

Nếu tất cả những gì trong web.config của bạn là:

<roleManager enabled="true" />

Sau đó, bạn đang dựa vào các nhà cung cấp mặc định đã khai báo thêm cấu hình phân cấp (machine.config, global web.config, v.v.)

Trong machine.config, bạn có thể có một cái gì đó như:

<roleManager>
  <providers>
    <add name="AspNetSqlRoleProvider" 
      connectionStringName="LocalSqlServer" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    <add name="AspNetWindowsTokenRoleProvider" 
      applicationName="/" 
      type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</roleManager>

Như bạn có thể thấy, nhà cung cấp đầu tiên được định cấu hình để sử dụng một Chuỗi kết nối được gọi là LocalSqlServer - cũng thường được khai báo trong machine.config:

<add name="LocalSqlServer" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient"/>

Và điều này được thiết kế để sử dụng cơ sở dữ liệu dựa trên tệp cục bộ sẽ được tạo nếu nó chưa tồn tại.

Vì vậy, để có được các vai trò hoạt động trên trang web của bạn, bạn nên cải tiến web.config gốc của mình thành một cái gì đó như:

<roleManager enabled="true">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" 
      connectionStringName="YourConnectionStringName" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</roleManager>

Việc sử dụng phần tử sẽ xóa tất cả các nhà cung cấp đã xác định trước đó cho loại đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp không chính xác gần từ khóa 'với'.

  2. Độ phân giải DateTimeOffset trong c # và SQL Server

  3. Cách định dạng số bằng dấu phẩy trong SQL Server

  4. Sự cố về quyền khi chạy gói SSIS từ Sql Job

  5. Mã hóa sao lưu cơ sở dữ liệu SQL Server