2012-05-28 2 views
6

로드 나는 관련 구성을 추가하지만 난 내 사용자 정의 확장이라는 방법이있다WCF 오류 : 확장은 내가 <code>IDispatchMessageInspector</code>보다 우선 내 프로젝트에 클래스를 정의

System.Configuration.ConfigurationErrorsException: The type 'InMotionGIT_NT.Address.Service, CustomHeaders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' registered for extension 'customHeaders' could not be loaded. (C:\Users\jmachado\Documents\Visual Studio 2010\Projects\InMotionGIT_NT\Address Service\InMotionGIT_NT.Address.Service\bin\Debug\InMotionGIT_NT.Address.Service.dll.config line 67)

작동하지 않습니다입니다 수 없습니다

<endpointBehaviors> 
    <behavior name="jsonBehavior"> 
     <enableWebScript/> 
     <customHeaders/> 
     <!--<webHttp/>--> 
    </behavior> 
</endpointBehaviors>  

이 은

<behaviorExtensions> 
    <add name="customHeaders" type="InMotionGIT_NT.Address.Service, CustomHeaders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
</behaviorExtensions> 

이 여기있어 난 내 사용자 지정 확장을 정의하는 방법이다 내가 정의 클래스, 즉

[AttributeUsage(AttributeTargets.Class)] 
public class CustomHeaders : IDispatchMessageInspector 
{ 
    public object AfterReceiveRequest(ref Message request, ClientChannel channel, InstanceContext instanceContext) 
    { 
     if ((WebOperationContext.Current.IncomingRequest.Method == "GET")) 
     { 
      WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*"); 
      WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Methods", "POST"); 
      WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Accept"); 
     } 
     return null; 
    } 

    public void BeforeSendReply(ref Message reply, object correlationState) 
    { 
    } 
} 

내가 구성에서 뭔가를 그리워 내 프로젝트의 내부입니까?

답변

17

유형 정의를 변경하십시오. 첫 번째는 전체 유형 이름 (인터페이스 + 클래스 이름)입니다. 혼수 상태 후에 당신의 타입을 유지하는 dll의 이름을 넣으십시오. 그리고 나머지보다. 유사 항목 :

<behaviorExtensions> 
    <add name="customHeaders" type="InMotionGIT_NT.Address.Service.CustomHeaders, <DLLName> , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
</behaviorExtensions> 
0

버전이 dll 버전과 동일한 지 확인하십시오. 내 경우에는 이러한 클래스가 일부인 asssemlby를 참조하고있었습니다. 하지만 App.config 파일의 버전과 일치하지 않는 AssemlbyInfo.cs 파일에서 어셈블리 버전을 변경했습니다.

관련 문제