제거하다 Integrated Security=True
SQL Server 사용자 이름/비밀번호로 연결하려고 할 때 연결 문자열에서
코드가있는 엔티티 프레임 워크 먼저 원격 데이터베이스에 대한 첫 번째 연결 문자열
-
29-07-2022 - |
문제
로컬 컴퓨터 (ASP.NET MVC 4 응용 프로그램)에서 작업 중이지만 이제 회사의 SQL 서버를 사용하여 해당 원격 서버에 연결하려면 연결 문자열을 변경해야합니다.
설정은 이것입니다.
- IP 주소를 사용하는 VPN 연결이 있습니다. 정확한 IP를 표시 할 수 없습니다.
- VPN에 연결하려면 사용자 이름과 비밀번호가 있습니다 -VPNUSERNAME/VPNPASSWORD
- 내가 사용할 때
Microsoft SQL Server Management Studio
원격 서버에 연결하려면 VPN -xxx.xxx.xxx.xxx에 연결하는 데 사용하는 것과 동일한 IP를 사용합니다. - SQL Server의 사용자 이름과 비밀번호가 다릅니다 -SqluserName/SQLPassword
내 PC의 서버에 연결하는 데 사용하는 기존 연결 문자열이 있으므로 다음과 같은 매개 변수를 변경하기에 충분할 것이라고 생각했습니다.
<add name="ProjectName.DAL.MyDbContext"
providerName="System.Data.SqlClient"
connectionString="Data Source=xxx.xxx.xxx.xxx;
Initial Catalog=DatabaseName;Integrated Security=True;
MultipleActiveResultSets=True;
user id=SQLUsername;password=SQLPassword;App=EntityFramework" />
따라서 작동하고 로컬 서버에 연결하는 연결 문자열의 변경 사항은 두 가지입니다.
Data Source= xxx.xxx.xxx.xxx
- IP를 사용하고 있습니다. 여기서 IP 자체가 질질이 있는지 궁금합니다. 내가 사용해야할까요 http://xxx.xxx.xxx.xxx 아니면 그냥 IP가 괜찮습니까?user id=SQLUsername;pasword=SQLPassword
- 나는Management studio
내가xxx.xxx.xxx.xxx
서버 이름으로 및 sqlusername/sqlpassword 사용SQL Server Authentincation
.
따라서 명확하게 - 관리 스튜디오에서는 원격 서버에 연결하는 데 아무런 문제가 없습니다. 그러나 연결 문자열을 내에서 위에 게시 한 내용으로 변경하면 HomeController
데이터베이스에 대한 호출이 실행되었는지 확인하기 위해 매우 간단한 논리가있는 경우 :
private MyDbContext db = new MyDbContext();
//
// GET: /Home/
public ActionResult Index()
{
return View(db.Users.ToList());
}
나는 3 가지 예외를 얻는다 :
- sqlexection (0x80131904) : 사용자 'vpnusername'에 로그인이 실패했습니다.
- ProssinCompatibleException : 공급자는 제공자 ManifestToken 문자열을 반환하지 않았습니다.
- PrudideIncomPatibleException : 데이터베이스에서 제공자 정보를 얻는 동안 오류가 발생했습니다. 이는 잘못된 연결 문자열을 사용하여 엔티티 프레임 워크로 인해 발생할 수 있습니다.
그래서 내 의견과 숫자 3 예외는 문제가 내가 연결 문자열을 사용하는 방식에 있다는 것을 알 수 있듯이 나에게도 관심이있는 것은 Number 1
예외는 로그인이 실패했지만 내 sqlusername은 아니지만 vpnusername에 대해서는 실패했다는 예외입니다. 내가 말했듯이 - 실제로 VPN 연결을 사용하고 있으며 동일한 IP를 사용합니다. xxx.xxx.xxx.xxx
VPN과 SQL Server (Management Studio)에 연결합니다.
이것을 해결하는 방법이 있습니까?
해결책
제휴하지 않습니다 StackOverflow