كيفية إزالة "VsDebuggerCausalityData" البيانات من الصابون الرسالة ؟
-
09-06-2019 - |
سؤال
لدي مشكلة حيث واردة الصابون الرسائل من عميل معين يتم وضع علامة على أنها غير صالحة و رفض من قبل لدينا XML جدار حماية الجهاز.يبدو الحمولة الإضافية البيانات يتم إدراجها من قبل Visual Studio;نحن نفكر بيانات إضافية قد تسبب مشكلة ب/ج نراه "VsDebuggerCausalityData" في هذه الرسائل ولكن ليس في الآخرين المرسلة من عميل مختلف هو عدم وجود مشكلة.انها نقطة انطلاق ، على أي حال.
سؤالي هو: كيف يمكن للعميل إزالة هذه البيانات الإضافية و لا تزال تعمل من VS ؟ لماذا VS وضعه هناك على الإطلاق ؟
شكرا
المحلول
سريع جوجل يكشف عن أن هذا ينبغي التخلص منه الحصول عليها إضافة إلى ويب.التكوين أو التطبيق.التكوين من أجل تطبيقها.
<configuration>
<system.diagnostics>
<switches>
<add name="Remote.Disable" value="1" />
</switches>
</system.diagnostics>
</configuration>
المعلومات هو تصحيح المعلومات التي تلقي الخدمة يمكن استخدامها للمساعدة في تتبع الأمور مرة أخرى إلى العميل.(ربما, وأنا على التخمين قليلا)
- اقترحت متابعة السؤال لتحديد كانت سحر التبديل في الواقع يأتي من.
نصائح أخرى
من أجل إزالة 'VsDebuggerCausalityData' تحتاج وقف de Visual Studio تشخيص WCF باستخدام هذا الأمر:
VS 2008 -> c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE>vsdiag_regwcf.exe -u VS 2010 -> c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>vsdiag_regwcf.exe -u
آمل أن يكون هذا مساعدة لك أو أشخاص آخرين.
داريل الجواب لم يكن العمل بالنسبة لي.كل مطور له علاقة ggrocco الجواب.
انتهى كتابة MessageInspector, إضافة هذا الرمز إلى BeforeSendRequest الطريقة:
int limit = request.Headers.Count;
for(int i=0; i<limit; ++i)
{
if (request.Headers[i].Name.Equals("VsDebuggerCausalityData"))
{
request.Headers.RemoveAt(i);
break;
}
}
استنادا إلى إجابة من قبل @Luiz Felipe
لقد جاء مع هذا قليلا أكثر قوة الحل:
var vs = client.Endpoint.EndpointBehaviors.FirstOrDefault((i) => i.GetType().Namespace == "Microsoft.VisualStudio.Diagnostics.ServiceModelSink");
if (vs != null)
{
client.Endpoint.Behaviors.Remove(vs);
}
أو استخدام "البدء دون التصحيح" في Visual Studio.