Comment puis-je obtenir WCF Routing pour me donner un message d'erreur plus détaillé que - Aucun MessageFilter correspondant?

StackOverflow https://stackoverflow.com/questions/6311423

  •  26-10-2019
  •  | 
  •  

Question

Y at-il un moyen de configurer WCF routage de sorte que si vos filtres ne vous correspondent pas à obtenir plus d'informations sur le message qui ne pouvait pas être routé?

À l'heure actuelle, nous utilisons AppFabric et nous obtenons que le message suivant. Ce message n'est pas très utile lorsque vous essayez de savoir quel message ne correspond un filtre.

No matching MessageFilter was found for the given Message.
Était-ce utile?

La solution

ce n'est pas la meilleure solution, j'ai expérimenté un moyen de vérifier qu'un service de routage fonctionne comme configuré, mais n'a pas trouvé la meilleure façon encore.

Mais d'une façon est de fournir un match tous les filtres, et ont un service qui accepte toutes les demandes et il enregistre, et renvoie une erreur 404 au client

    <routing>
        <filters>
            <filter name="Other" filterType="MatchAll" />
            <filter name="action1" filterType="Action" filterData="http://tempuri.org/action2" />
            <filter name="action2" filterType="Action" filterData="http://tempuri.org/action1" />
        </filters>
        <filterTables>
            <filterTable name="FilterTable">
                <add filterName="action1" endpointName="Service1" priority="1" />
                <add filterName="action2" endpointName="Service2" priority="1" />
                <add filterName="Other" endpointName="Logger" priority="0" />
            </filterTable>
        </filterTables>
    </routing>

Le point final Logger simplement des points à un service simple qui accepte un message et l'enregistre, et retourne un 404

un code de psudo:

[ServiceBehavior]
public class RoutingLogger : IYourInterface
{
    public System.ServiceModel.Channels.Message YourInterfaceMethod(System.ServiceModel.Channels.Message message)
    {
        LogMessage(message);
        return new Custom404Message();
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top