Tôi có một ứng dụng ASP.Net chạy tốt trên máy phát triển cục bộ của mình.
Khi tôi chạy ứng dụng này trực tuyến, nó hiển thị lỗi sau
Định dạng của chuỗi khởi tạo không tuân theo đặc tả bắt đầu từ chỉ số 0
Tôi có một ứng dụng ASP.Net chạy tốt trên máy phát triển cục bộ của mình.
Khi tôi chạy ứng dụng này trực tuyến, nó hiển thị lỗi sau
Định dạng của chuỗi khởi tạo không tuân theo đặc tả bắt đầu từ chỉ số 0
Câu trả lời:
Kiểm tra chuỗi kết nối của bạn. Nếu bạn cần trợ giúp, hãy kiểm tra Chuỗi kết nối , trong đó có danh sách các chuỗi thường được sử dụng.
Chuỗi kết nối thường được sử dụng:
Bảo mật tiêu chuẩn
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Kết nối đáng tin cậy
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Kết nối với phiên bản SQL Server
Cú pháp tên máy chủ / thể hiện được sử dụng trong tùy chọn máy chủ là giống nhau cho tất cả các chuỗi kết nối SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
Bảo mật tiêu chuẩn
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Kết nối đáng tin cậy
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Kết nối với phiên bản SQL Server
Cú pháp tên máy chủ / thể hiện được sử dụng trong tùy chọn máy chủ là giống nhau cho tất cả các chuỗi kết nối SQL Server.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
Tiêu chuẩn
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Chỉ định cổng TCP
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Sử dụng TNS
Data Source=TORCL;User Id=myUsername;Password=myPassword;
Sử dụng bảo mật tích hợp
Data Source=TORCL;Integrated Security=SSPI;
Sử dụng ODP.NET mà không có tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Điều này có thể giúp ai đó .. Mật khẩu của tôi có dấu chấm phẩy vì vậy đã đối mặt với vấn đề này. Vì vậy, đã thêm mật khẩu trong dấu ngoặc kép. Đó thực sự là một sai lầm ngớ ngẩn.
Tôi đã thay đổi như sau:
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient" />
đến
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;word'" providerName="System.Data.SqlClient" />
Đặt dự án chứa DbContext
lớp của bạn làm dự án khởi động.
Tôi đã nhận được lỗi này trong khi gọi enable-migrations
. Ngay cả khi Package Manager Console
tôi chọn đúng Default project
, nó vẫn đang xem tệp web.config của dự án khởi động đó, nơi chuỗi kết nối không có mặt.
Tôi đã từng gặp vấn đề tương tự. Tại địa phương trang web chạy tốt, nhưng trên phương tiện, nó sẽ thất bại với thông báo ở trên.
Hóa ra vấn đề là thiết lập chuỗi kết nối trong ctor, như thế này:
public DatabaseContext()
{
Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
}
KHÔNG hoạt động, điều này sẽ:
public DatabaseContext() : base("db")
{
}
Đánh bại tôi ..
Kiểm tra chuỗi kết nối của bạn như tôi quên thêm services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
Nó gây ra lỗi và ở đây khi tôi thêm Configuration.GetConnectionString
, sau đó nó giải quyết vấn đề
như bây giờ kết nối là:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
hoạt động tốt (Vấn đề này được giải quyết cho lõi .net)
Tôi đã giải quyết điều này bằng cách thay đổi chuỗi kết nối trên cài đặt xuất bản của ASP.NET Web Api của tôi.
Kiểm tra câu trả lời của tôi trên bài đăng này: Cách sửa lỗi :: Định dạng của chuỗi khởi tạo không tuân theo thông số bắt đầu từ chỉ mục 0 ::
Tôi đã có những lỗi giống nhau. Trong trường hợp của tôi, điều này là do tôi đã thiếu một trích dẫn đóng cho mật khẩu trong chuỗi kết nối.
Thay đổi từ này
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient" />
Đến
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient" />
Điều này cũng xảy ra khi bạn sao chép một trang web từ giải pháp này sang giải pháp khác, sau đó bạn chạy giải pháp của mình và phát hiện ra rằng nó có tên chuỗi kết nối khác trong webconfig. Sau đó, bạn bất cẩn thay đổi tên của chuỗi kết nối trong bảng thuộc tính trong chế độ xem thiết kế của trang.
Tốt hơn là chỉ thay đổi nó trong phần mã thay vì thiết kế.
Vấn đề của tôi là tôi đã thêm mã đăng nhập cơ sở dữ liệu vào hàm tạo của mình cho một đối tượng DB và điều này dường như gây ra sự tàn phá trong hồ sơ triển khai phương tiện của tôi.
FYI - Tôi đã đơn giản hóa ví dụ này, trong mã thực, nó đã bị tắt trong sản xuất (nhưng vẫn còn trong mã)
public class MyDB : DbContext
{
public MyDB()
{
this.Database.Log = x => { Debug.WriteLine(x); };
}
}
Tôi đã mắc lỗi đánh máy trong chuỗi kết nối của mình "Cơ sở dữ liệu == PESitecore1_master"
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
Tôi đã có cùng một vấn đề và cuối cùng tôi đã giải quyết nó theo cách sau:
Vấn đề là ở định nghĩa chuỗi kết nối trong web.config của tôi.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
Ở trên hoạt động hoàn hảo cục bộ vì tôi đã sử dụng Cơ sở dữ liệu cục bộ khi tôi quản lý người dùng và vai trò. Khi tôi chuyển ứng dụng của mình sang IIS, DB cục bộ không thể truy cập được nữa, ngoài ra tôi muốn sử dụng DB của mình trong SQL Server. Vì vậy, tôi thay đổi chuỗi kết nối trên tương đương với SQL Server DB sau:
<add name="DefaultConnection" connectionString="data source=MY_SQL_SERVER; Initial Catalog=MY_DATABASE_NAME; Persist Security Info=true; User Id=sa;Password=Mybl00dyPa$$" providerName="System.Data.SqlClient"/>
LƯU Ý: Ngoài ra, giả sử rằng bạn sẽ sử dụng cùng một Máy chủ SQL từ hộp cục bộ của mình (trong trường hợp bạn kết hợp nó vào web.config cục bộ của mình - đó chính xác là những gì tôi đã làm trong trường hợp của tôi).
Tôi gặp vấn đề tương tự, đã phát hiện ra rằng việc triển khai lên IIS không đặt đúng chuỗi kết nối. chúng là '$ (AlternacableToken_devConnection-Web.config Connection String_0)' khi xem các chuỗi kết nối của trang web trong IIS, thay vì chuỗi kết nối thực tế. Tôi đã cập nhật chúng ở đó, và tất cả đều hoạt động như mong đợi
Tôi đã sao chép và dán cấu hình chuỗi kết nối vào dự án thử nghiệm của mình và bắt đầu gặp phải lỗi này. Chuỗi kết nối hoạt động tốt trong dự án WebAPI của tôi. Đây là sửa chữa của tôi.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
Tôi đã xóa & quote ở cuối chuỗi kết nối và nó hoạt động
Thay vì
App=EntityFramework"
Đã sử dụng
App=EntityFramework;
<add name="DefaultConnection" connectionString="data source=(local);initial catalog=NamSdb;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.SqlClient" />
Lưu ý: Trong ConnectionString Không bao gồm:
| x | Thông tin siêu dữ liệu: "metadata = res: // * /"
| x | Báo giá được mã hóa: "" "
Đôi khi dịch vụ Sql Server chưa được khởi động. Điều này có thể tạo ra lỗi. Đi đến Dịch vụ và khởi động Sql Server. Điều này sẽ làm cho nó hoạt động.
Đối với một linh hồn không may khác đang quản lý ứng dụng webforms kế thừa sử dụng sqldatasource nội tuyến, cùng với các chuỗi kết nối được lưu trữ trong web.config, thì bạn có thể gặp lỗi này nếu bạn truy cập chuỗi kết nối của mình như <% APSDataConnectionString%> thay vì <% % $ ConnectionStrings: MyConnectionString%>. Điều này đã xảy ra với chúng tôi khi nâng cấp .NET từ 3.5 lên 4.x.
<asp:DropDownList ID="ddl" runat="server" DataSourceID="SqlDataSource1"
DataTextField="value" DataValueField="id"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="select id, value from a_table">
</asp:SqlDataSource>
Trong trường hợp của tôi, vấn đề là trên máy chủ, một tệp appsinstall.json khác đã được ứng dụng sử dụng.
Trong trường hợp của tôi, tôi đã gặp một lỗi tương tự:
Một ngoại lệ chưa được xử lý đã được ném bởi ứng dụng. System.ArgumentException: Định dạng của chuỗi khởi tạo không phù hợp với đặc tả bắt đầu từ chỉ mục 91.
Tôi thay đổi chuỗi kết nối của mình từ:
Máy chủ =.; Cơ sở dữ liệu = dbname; Id người dùng = myuserid; Mật khẩu = mật khẩu "
đến:
Máy chủ =.; Cơ sở dữ liệu = dbname; Id người dùng = myuserid; Mật khẩu = 'mypassword' "
và nó hoạt động, tôi đã thêm dấu ngoặc đơn vào mật khẩu.
Tôi cũng gặp lỗi này và đã có thể giải quyết nó như sau: Trước đây tôi đã viết chuỗi kết nối tới appsinstall.json vào một phần mà tôi đã tạo (ConnectionsStrings (chú ý thêm "s") và cố gắng kết nối với cơ sở dữ liệu của tôi, điều này gây ra đó là một ứng dụng ASP.NET CORE và vì vậy tôi muốn kết nối với nó bằng .GetConnectionString Phương thức (chi tiết ở đây ). Có vẻ như phương thức này tìm kiếm một chuỗi kết nối trong phần "ConnectionStrings", mà không Khi tôi thay đổi / sửa nó thành "ConnectionStrings", nó hoạt động như mong đợi.
Như tôi biết, bất cứ khi nào bạn có nhiều hơn 1 chuỗi kết nối trong giải pháp của mình (dự án hiện tại, dự án khởi động, ...), bạn có thể phải đối mặt với lỗi này
liên kết này có thể giúp bạn nhấp