Ben this article takip ettim ve aşağıda MyMessageInspector
ve MyEndPointBehavior
clases yarattık: Hizmetin web.config özel bir EndPointBehavior nasıl eklenir?
public class MyMessageInspector : IDispatchMessageInspector
{
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
Console.WriteLine("Incoming request: {0}", request);
return null;
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
}
}
public class MyEndPointBehavior : IEndpointBehavior
{
#region IEndpointBehavior Members
public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
{
}
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
}
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
ChannelDispatcher channelDispatcher = endpointDispatcher.ChannelDispatcher;
if (channelDispatcher != null)
{
foreach (EndpointDispatcher ed in channelDispatcher.Endpoints)
{
ed.DispatchRuntime.MessageInspectors.Add(new MyMessageInspector());
}
}
}
public void Validate(ServiceEndpoint endpoint)
{
}
#endregion
}
nasıl web.config için MyEndPointBehavior eklenir?
<extensions>
<behaviorExtensions>
<add name="myMessageInspector" type="MessageInspectorProject.MyEndPointBehavior, MessageInspectorProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
aşağıda bunu kullanmaya çalıştığınızda Ancak, şikayet:
<serviceBehaviors>
<behavior>
<myMessageInspector/>
Onun şikayet
aşağıdaki gibidir:aşağıda uzantıları ekledik
Yapılandırmada geçersiz eleman. 'MyMessageInspector' uzantısı, 'System.ServiceModel.Configuration.BehaviorExtensionElement' doğru uzantı taban türünden türemiyor.
Web.config dosyasına MyEndPointBehavior
nasıl eklenir?
Büyük linki yeni BehaviorExtensionElement
eklemek Ve güncelleyin: http://weblogs.asp.net/paolopia/archive/2007 /08/23/writing-a-wcf-message-inspector.aspx – Tanner
Bu etiketi kullanarak denediniz: hata messsage her şeyi söylüyor –
Tanner
, özel uzatma tipi System.ServiceModel.Configuration.BehaviorExtensionElement 'devralınmalıdır '. Yeni bir sınıf oluşturabilir veya "MyMessageInspector" öğesini bundan türetebilirsiniz. Sen 'CreateBehavior()' ve 'BehaviorType' üyelerini geçersiz kılmak gerekir. 'BehaviorType' döndürür' Typeof (MyEndPointBehavior) ve 'CreateBehavior() 'Bu sınıfın bir örneği döndürür. – Vasea