2009-03-16 6 views
1

같은 어셈블리가 다른 BizTalk 2006 응용 프로그램에서 다르게 동작하도록 할 수 있습니까?BizTalk 2006, 서로 다른 BizTalk 응용 프로그램에서 서로 다른 동작을하는 동일한 어셈블리

예를 들어, 어셈블리 내에서 어떻게 든 해당 인스턴스를 사용중인 BizTalk 응용 프로그램 Id 또는 Name에 액세스하여 다른 BizTalk 응용 프로그램에 다른 동작을 적용 할 수 있습니까?

아니면 어셈블리를 버전 관리하는 대신 다른 방법으로 수행 할 수 있습니까?

답변

0

버전 관리를 사용하여 해결했지만 다른 방법은 없습니다.

같은 biztalk 응용 프로그램의 여러 인스턴스가 서로 다른 환경을 시뮬레이트하지만 동일한 biztalk 인스턴스를 사용하여 서로 다른 구성 (다른 바인딩이 아닌)으로 실행되기를 원합니다. 따라서 동일한 컴퓨터에서 복제 된 다른 소프트웨어와 상호 작용할 수 있으며 또한 동일한 환경 및 다른 데이터베이스를 나타내는 외부 시스템과 상호 작용할 수 있습니다.

문제는 BTSNTSvc.Exe.Config 파일의 각 환경에 대해 각각 다른 DB를 정의하기 위해 다른 연결 문자열을 사용해야한다는 것이 었습니다. 그러나 어셈블리가 동일했기 때문에 각 어셈블리가 런타임에서 해당 결정을 수행하는 방법을 (예 : 어떤 환경에 속한 것인지를 아는 방법으로) 알았 으면하지 않으면 각 biztalk 응용 프로그램이 자체 연결 문자열을 사용하도록 할 방법이 없었습니다.

그래서 지금은 여러 버전을 컴파일하고 배포하고 사용할 연결 문자열의 이름과 어셈블리 버전 (컴파일 기호 사용)을 변경하는 스크립트가 있습니다.

도움 주셔서 감사합니다.

3

정확히 달성하려는 것은 무엇입니까? 즉, 어떤 종류의 행동 차이를 소개하려고합니까?

BizTalk의 응용 프로그램 개념은 순수하게 관리자 아티팩트이기 때문에 코드가 실행중인 BizTalk 응용 프로그램을 찾는 바보 같은 방법은 없습니다. 일부 제한된 상황에서 ExplorerOM을 사용하여 관리 데이터베이스로 이동하여 일부 쿼리를 수행하여 아티팩트 (포트, 오케스트레이션)가 속한 응용 프로그램을 파악할 수는 있지만 느려질 수 있으며 보안을 조정해야 할 수도 있습니다.

메시징 또는 오케스트레이션 호출을 통해 응용 프로그램 경계를 넘나 드는 메시지가 있는지 여부에 따라 예상 결과가 제공되지 않을 수도 있습니다.

아마도 내가 필요한 정보를 조금 더 공유 할 수 있다면 더 좋은 제안을 시도해 볼 수 있습니다!

0

다른 어셈블리의 버전을 지정하는 것이 원하는 것처럼 들릴 것 같습니까?

관련 문제