मैं this article का पालन किया है और नीचे के रूप में MyMessageInspector
और MyEndPointBehavior
clases बनाया है:सेवा के web.config पर एक कस्टम EndPointBehavior कैसे जोड़ें?
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
}
कैसे web.config को MyEndPointBehavior जोड़ने के लिए?
<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' से प्राप्त नहीं होता है।
web.config पर MyEndPointBehavior
कैसे जोड़ें?
महान लिंक जोड़ने
और अद्यतन अपने web.config: http://weblogs.asp.net/paolopia/archive/2007 /08/23/writing-a-wcf-message-inspector.aspx – Tanner
क्या आपने इस टैग का उपयोग करने का प्रयास किया है: –
Tanner
त्रुटि मैसेज यह सब कहता है, आपका कस्टम एक्सटेंशन प्रकार 'System.ServiceModel.Configuration.BehaviorExtensionElement से प्राप्त होना चाहिए '। आप या तो एक नई कक्षा बना सकते हैं, या उस से 'MyMessageInspector' प्राप्त कर सकते हैं। आपको 'CreateBehavior()' और 'व्यवहार प्रकार' सदस्यों को ओवरराइड करना होगा। 'व्यवहार प्रकार' 'टाइपऑफ (MyEndPointBehavior)' और 'CreateBehavior()' वापस लौटाएगा इस वर्ग का एक उदाहरण लौटाएगा। – Vasea