우리는 다중 소유의 Silverlight 응용 프로그램을 작성하고 있습니다. 사용자는 Windows Forms 인증을 사용하여 로그인하고 테이블에서 해당 사용자의 연결 문자열을 가져옵니다. 문자열의 형식은 다음과 같습니다."응용 프로그램 이름 = 응용 프로그램"이 연결 문자열에있는 경우이 데이터베이스 연결이 실패하는 이유는 무엇입니까?
Data Source=1.2.3.4; Initial Catalog=database; Persist Security Info=True; User ID=######; Password=##########
괜찮 았습니다.
Data Source=1.2.3.4; Initial Catalog=database; Application Name=application; Persist Security Info=True; User ID=######; Password=##########
그러나, 지금은 연결이되지 않는 우리가 얻고 오류 : 우리는 다음 이유 outlined here를 들어, 응용 프로그램 이름을 설정하는 것은 좋은 생각이 될 것이라고 결정했다. 이것은 배포 된 사이트에서만 실패합니다. Visual Studio를 통한 실행은 분명히 영향을받지 않습니다. 연결을 만드는 코드는 변경되지 않았습니다. 나는 변화가 있어야한다고 믿고 기꺼이 하겠지만, 나는 그들이해야 할 일을 해결할 수 없었다.
연결
는 다음과 같이 생성되는 :public class OurDataContext : DataContext
{
public OurDataContext()
: base(SessionCache.OurConnectionString)
{
....
}
}
SessionCache.OurConnectionString
는 데이터베이스에서 읽을 문자열입니다.
UPDATE는
연결 문자열 에 대한 변경은 붉은 청어 수 있습니다. 우리는이 오류를 한 웹 서버에서만받습니다 (직접 액세스 할 수없는 웹 서버). 다른 웹 서버에서 참조하는 데이터베이스에 속성을 추가하면 (즉, 을 수행하면에 액세스 할 수 있음) 문제가 재현되지 않습니다. 이것은 내가 오류가 다른 곳의 결론에 이르게합니다. 그러나, 나는 아직도 이것을 해결하기 위해 더 가깝지 않다.
실제 오류는 예외입니다 :
An exception of type 'System.ServiceModel.DomainServices.Client.DomainOperationException' occurred and was caught.
------------------------------------------------------------------------------------------------------------------
01/31/2012 14:18:53
Type : System.ServiceModel.DomainServices.Client.DomainOperationException, System.ServiceModel.DomainServices.Client, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Message : Load operation failed for query 'GetUserSecurityConfig'. The remote server returned an error: NotFound.
Status : ServerError
ErrorCode : 0
Data : System.Collections.ListDictionaryInternal
Stack Trace : The stack trace is unavailable.
이 이 변경되지해야 몇 가지 매우 기본적인 것들을 반환에 내가 오늘했던 모든 연구 :
- 시스템. ComponentModel.DataAnnotations, System.ServiceModel.DomainServices.EntityFramework, System.ServiceModel.DomainServices.Hosting 및 System.ServiceModel.DomainServices.Server가 \ bin 디렉터리에 복사되지 않습니다. 내가 확인 했어.
- 데이터베이스 서버에 연결하는 동안 오류가 발생했습니다. 나는 을 생각하지 않는다. 폼 인증이 작동하는 경우이다. 서버의 다른 데이터베이스이지만 자격 증명은 동일합니다.
나는 어떤 SQL 서버 전문가도 아니다 그러나 나는 "지속 보안 정보"부분을 제거하는 노력과 도움이 있는지 ... 또 다른 점을 볼 것입니다 : "응용 프로그램"공백 또는 유사한 포함되어 있습니까? – Yahia
@Yahia - "application"에 공백이 없어야합니다. "보안 정보 유지"사용자 이름과 암호를 다시 가져올 필요가 있습니다. [원본] (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx) – ChrisF
배포 된 데이터베이스에서 "응용 프로그램"을 구성 했습니까? –