2009-07-28 4 views
0

두 개의 서로 다른 웹 사이트에 요청할 때 (거의 모든) 액세스해야하는 구성 요소 (.NET에 내장 된 어셈블리)가 있습니다. 하나의 웹 사이트는 asp.net mvc에서 클래식 asp와 다른 웹 사이트로 작성됩니다.긴 수명을 가진 COM interop 용 .net 어셈블리 호스팅?

순간 나는 asp.net 솔루션에서 어셈블리를 참조하고 나는 .net 어셈블리처럼 호출한다. 클래식 ASP 웹 사이트에서는 COM 래퍼를 통해 호출합니다.

이제는이 구성 요소가 실제로 살아 있고 구성 파일의 변경 사항을 모니터링해야하는 것을 제외하고는이 모든 것이 좋습니다. 내 asp.net 웹 사이트에서 응용 프로그램 범위에서 refence 유지할 수 및 asp 액세스 구성 요소 서비스에서 등록 할 수있을 것 같아요.

이렇게하는 것이 가장 좋은 방법입니까? 또한이 방법은 실제로 두 번 호스팅됩니다. 하나는 asp.net 응용 프로그램 범위에, 다른 하나는 구성 요소 서비스에 있습니다. 아마 대신 구성 요소 서비스에 살고 대신 asp.net에서 참조 할 수 있습니다.

나는 잘 모르겠다. 뭔가 이상한 냄새가 난다. (나, 내가 아니야) - 나는 올바른 길을 가고 있는가? 아니면 더 좋은 대안을 볼 수 있는가?

+0

두 번째 단락에서 "고전적인 ASP 웹 사이트에서"라고 생각합니다. –

+0

맞아, 고마워 :) –

답변

0

확인 구성 요소 서비스를 제공하고 거기에서 수명을 처리합니다.

0

장기 실행 개체가 실제로 필요합니까? 구성 변경 사항을 모니터링해야하는 경우 - 구성 변경시 일부 작업이 트리거되어야하거나 들어오는 각 요청이 구성 요소의 최신 구성 복사본을 사용하는지 확인해야합니까? 후자의 경우 표준 .NET 구성이 개체 수명을 고려하지 않고 사용할 수 있습니다.

호스팅 측면에서 COM + 서비스를 사용해야합니까? 그렇지 않다면 COM +를 사용하지 않을 것입니다. .NET 구성 요소의 중심 위치를 원한다면 GAC에 등록하지 않으시겠습니까?

1)이 Application("Someobject") = Server.CreateObject("Someobject")

이 같은 응용 프로그램 개체에서의 Application_OnStart에 Global.asa 파일에 등록)에서 호스트 : 내가, 내가 두 가지 해결책을 발견이 프로젝트에 대한 허용 모두 생각 있도록

+0

이 구성 요소는 거의 모든 요청에 ​​대한 asp.net 웹 사이트와 레거시 클래식 ASP 사이트에 많은 요청에 대해 호출 될 예정이다, 따라서 내가 원하는 초기화 (읽기/파일 구문 분석) 가능한 한 빨리 일어난다. 또한 VBScript (고전 ASP 사이트)에서 .net 어셈블리를 직접 호출 할 수없는 호출 할 수 있어야합니다. –

관련 문제