我按照this article,並創造了MyMessageInspector
和MyEndPointBehavior
clases如下:如何將自定義EndPointBehavior添加到服務的web.config中?
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
}
如何MyEndPointBehavior添加到web.config?
我已經添加了以下擴展名:
<extensions>
<behaviorExtensions>
<add name="myMessageInspector" type="MessageInspectorProject.MyEndPointBehavior, MessageInspectorProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
但是當我嘗試在下面使用它,它抱怨:
<serviceBehaviors>
<behavior>
<myMessageInspector/>
它的抱怨是如下:
配置中的元素無效。擴展名「myMessageInspector」不是從正確的擴展基類型「System.ServiceModel.Configuration.BehaviorExtensionElement」派生的。
如何將MyEndPointBehavior
添加到web.config?
大鏈接,你想做什麼:http://weblogs.asp.net/paolopia/archive/2007 /08/23/writing-a-wcf-message-inspector.aspx – Tanner 2013-03-26 12:21:57
您是否嘗試過使用此標記: –
Tanner
2013-03-26 12:26:38
錯誤消息說明了一切,您的自定義擴展類型必須從System.ServiceModel.Configuration.BehaviorExtensionElement '。你可以創建一個新的類,或者從中派生出MyMessageInspector。你必須重寫'CreateBehavior()'和'BehaviorType'成員。 'BehaviorType'將返回'typeof(MyEndPointBehavior)'和'CreateBehavior()'將返回這個類的一個實例。 – Vasea 2013-03-26 12:47:27