9

プロジェクトでオーバーライドするクラスを定義し、IDispatchMessageInspector関連する構成を追加しましたが、機能しません

System.Configuration.ConfigurationErrorsException: 拡張機能 'customHeaders' に登録されたタイプ 'InMotionGIT_NT.Address.Service, CustomHeaders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' を読み込めませんでした。(C:\Users\jmachado\Documents\Visual Studio 2010\Projects\InMotionGIT_NT\Address Service\InMotionGIT_NT.Address.Service\bin\Debug\InMotionGIT_NT.Address.Service.dll.config 行 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)
    {
    }
}

構成に何か欠けていますか?

4

2 に答える 2

24

タイプ定義を変更してください。まず、完全な型名 (名前空間 + クラス名) を指定します。コンマの後に、型を保持する DLL の名前を配置します。そして、完全修飾型名の残り。このような:

<behaviorExtensions>
    <add name="customHeaders" type="InMotionGIT_NT.Address.Service.CustomHeaders, <DLLName> , Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
于 2012-05-28T17:53:09.323 に答える
0

バージョンがdllのバージョンと同じであることを確認してください。私の場合、これらのクラスが含まれているのと同じ asssemlby を参照していました。しかし、AssemlbyInfo.cs ファイル内のアセンブリのバージョンを変更したため、App.config ファイル内のバージョンと一致しませんでした。

于 2016-11-03T09:31:29.910 に答える