2011-12-02 1 views
0

다음 문제가 있습니다. 동적으로 WCF RIA 서비스 (DDL 및 Silverlight 응용 프로그램의 DAL)를로드하려고합니다.
인증, 인증 등을 유지하는 주요 응용 프로그램이 있습니다. 이 응용 프로그램은 Prism 라이브러리를 사용하여 구현됩니다. 모듈 형이지만 불행히도 RIA 서비스 라이브러리를 참조하기 때문에 고객 솔루션 요구 사항에 따라 모듈을 전환 할 수 없으며 전체 솔루션을 다시 컴파일하지 않고 자동 생성 코드로 문제를 일으키지 않습니다. IIS (IIS Express)에서 호스팅됩니다.
기본 웹 페이지 앱에서 맞춤 모듈에 대한 참조를 제거하고 동적으로 모듈을로드하고 필요한 끝점을 만드는 것이 좋습니다. 내 첫 번째 방법은의 Web.config의 서비스를 정의했다 :동적으로 호스트 WCF RIA 서비스 (참조하지 않고 IT)

<services> 
     <service name=PatientRegistry.PatientRegistryDomainService" 
     behaviorConfiguration="RIAServiceBehavior"> 
      <endpoint address="" binding="wsHttpBinding" 
      contract="PatientRegistryDomainService" /> 
      <endpoint address="/soap" 
      binding="basicHttpBinding" 
      contract="PatientRegistryDomainService" /> 
      <endpoint address="/binary" 
      binding="customBinding" 
      bindingConfiguration="BinaryHttpBinding" 
      contract="PatientRegistryDomainService" /> 
     </service> 

    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="RIAServiceBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <customBinding> 
      <binding name="BinaryHttpBinding"> 
       <binaryMessageEncoding /> 
       <httpTransport /> 
      </binding> 
     </customBinding> 
    </bindings> 

문제였다,이 참조되지 않은 때문에 모든 necesary 어셈블리가로드되지 않았 음.

Type _svctype = null; 
foreach (Type _T in _types) 
{ 
    if (IsSubclassOfRawGeneric(typeof(DomainService), _T)) 
    { 
     _svctype = _T; 
     break; 
    } 
} 
DomainServiceHost host = new DomainServiceHost(_svctype /*, BaseUri*/); 
host.Open(); 

이 방법 selfhosting에 들거 같은 문제에 내 모든 이전의 시도를 실패

은 그 때 나는 DomainServiceHost을 코드에서 어셈블리를로드 수출 유형 목록에서 DomainServiceType를 얻을 수 (_types를)하고 사용하려고 RIA : AspNetCompatibilityModeAttribute :
이 서비스는 ASP.NET과의 호환성이 필요하며 IIS에서 호스팅되어야합니다. web.config에서 ASP.NET 호환성이 설정된 IIS에서 서비스를 호스팅하거나 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 속성을 Required 이외의 값으로 설정하십시오.
나는
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

를 추가하여 도메인 서비스에 대한 속성을 설정하려고했지만 아무 효과가 없었다. 나는 아주 오랜 시간 동안 필사적으로 인터넷 검색을하고 있지만 성공하지는 못했다. 참조되지 않은 RIA 서비스 서버를로드하는 방법에 대해 올바른 방향으로 나를 괴롭히지 않겠습니까?

P. 저는 Silverlight 5, VS2010에 있습니다.

답변

0

web.config에 이것을 포함 시키려고 했습니까?

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel>