2012-06-05 5 views
1

IIS에서 실행되는 두 개의 서로 다른 사이트가있는 한 대의 컴퓨터에 두 개의 데이터베이스가 있습니다. Site1 & Site2 및 DB1 & DB2로 호출 할 수 있습니다. 두 번째 사이트와 BD는 첫 번째 사이트의 복사본입니다. Site2는 DB2에 연결되고 모든 것이 잘 작동하는 것처럼 보입니다. 그러나 우리가 을 오프라인으로 만들었을 때 DB1이 작동을 멈추었습니다. site2를 사용하여 생성 된 모든 데이터가 DB2에 있기 때문에 wierd가 작동하지 않습니다. 사실 하나의 방법을 제외하고 대부분의 사이트 작업어딘가에 숨겨진 연결 문자열?

우리는 데이터베이스에 액세스하기 위해 엔티티 프레임 워크를 사용하고 코드를 추적 할 때 모든 것이 정상적으로 보이지만 어떻게 든 작동하지 않습니다. 엔티티 프레임 워크에 의해 우리의 자동 생성 된 코드에서

우리는 connectiong 문자열을 추적하고 결과는

Initial Catalog=DB2; 

그러나 다음 줄에 우리가이 코드

return ((IObjectContextAdapter) this).ObjectContext.ExecuteFunction<T_REFERENCE_DATA>(
       "GetReferenceData", groupNameParameter); 

이 올바른지 그리고 우리가 얻을 내부 예외는 다음과 같습니다 :

Database 'DB1' cannot be opened because it is offline. 

다른 모든 방법은 correc 이 데이터베이스를 제외한 데이터베이스. 우리는 DB1이 구성되거나 하드 코드 된 위치를 파악할 수 없습니다.

+0

Global.asax에는 무엇이 있습니까? 또는 web.config 또는 app.config에 있습니까? – Brian

+0

'~/Properties/Settings.settings' 파일에서 찾아 볼 수도 있습니다. – Jupaol

+0

사람들이 저장하는 연결 문자열은 web/app/machine .config 파일에 있습니다. – Tony318

답변

1

문제는 (평소와 같이) 지옥처럼 어리 석 었습니다. 일부 사람들은 저장 프로 시저에서 DB를 정의했습니다. 우리는 DB를 변경하고 저장 프로 시저를 복사 할 때 이전 DB를 사용하여 보관했습니다. 이제 수정되었습니다.

귀하의 도움에 감사드립니다.

+0

예, 저는 바보였으며 똑같은 문제가 발생했습니다. 심지어 필자는 저장 프로 시저를 두 번 (내 인스턴스에서) 검사했는데 데이터베이스 이름이 숨겨져 있음을 알지 못했습니다. – Andez

+0

클럽에 오신 것을 환영합니다. :) – JSantos