этот вопрос относится к Вопросу изменения .
Требования изменились, поэтому мне нужно использовать расширение в Fiddler с той же задачей.
Как я могу создать расширение с C #, которое будет исключено Fiddler?
Я могу создать dll в C # - я также попробовал старый компилятор .net 2.0 для него .. Сначала я попытался использовать свое расширение в папке Program-File, а затем в папке MyDocuments (два упомянутых на Fiddler -Website).
Если я загружаю extension-dll из Fiddler-extensions, его можно использовать после перезапуска Fiddler.
Если я пытаюсь заменить мой файл .dll во время работы Fiddler, Windows сообщает мне, что .dll используется программой и не может быть изменена сейчас. Расширение не показано на вкладке расширений.
Прямо сейчас я застрял в тупике, не зная, что я должен искать сейчас, так как, похоже, никто другой не имеет этой проблемы.
Может быть, это нужно, чтобы ответить на мой вопрос:
с помощью:
MS Visual C # 2008 Express Edition
Мой проект дополнительно связан с Fiddler и System.Windows.Forms (не нашел System.Windows.WinForms, который упоминается в Fiddler).
использовал [assembly: Fiddler.RequiredVersion("2.2.7.0")]
в моем расширении, а мой Fiddler - 2.2.8.x.
, если это представляет интерес для ответов: я использовал описание IFiddlerExtension-Help также для получения необходимого кода.
Моя главная проблема в том, что Fiddler не дает мне никаких замечаний или сбоев, но, похоже, находит расширение, но не может его использовать по какой-то причине.
using System;
using System.Windows.Forms;
using Fiddler;
[assembly: Fiddler.RequiredVersion("2.2.7.0")]
namespace validate_js
{
public interface IFiddlerExtension
{
// Called when Fiddler User Interface is fully available
void OnLoad();
// Called when Fiddler is shutting down
void OnBeforeUnload();
}
public interface IAutoTamper : IFiddlerExtension
{
// Called before the user can edit a request using the Fiddler Inspectors
void AutoTamperRequestBefore(Session oSession);
// Called after the user has had the chance to edit the request using the Fiddler Inspectors, but before the request is sent
void AutoTamperRequestAfter(Session oSession);
// Called before the user can edit a response using the Fiddler Inspectors, unless streaming.
void AutoTamperResponseBefore(Session oSession);
// Called after the user edited a response using the Fiddler Inspectors. Not called when streaming.
void AutoTamperResponseAfter(Session oSession);
// Called Fiddler returns a self-generated HTTP error (for instance DNS lookup failed, etc)
void OnBeforeReturningError(Session oSession);
}
public class Violin : IAutoTamper
{
string sUserAgent = "";
public Violin()
{
sUserAgent = "Violin";
}
public void OnLoad()
{
string strResponse;
FiddlerApplication.Log.LogString("S&T-Script wird ausgeführt.");
Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS)
{
strResponse = oS.GetResponseBodyAsString(); // safe BodyContent in strResponse
if (System.String.Compare(strResponse, "getElementbyID", true) == 0)
{
FiddlerApplication.Log.LogString("getElementbyID found - could have a different attitude in IE 8. Please check");
}
};
}
public void OnBeforeUnload()
{
}
public void AutoTamperRequestBefore(Session oSession)
{
oSession.oRequest["User-Agent"] = sUserAgent;
}
public void AutoTamperRequestAfter(Session oSession) { }
public void AutoTamperResponseBefore(Session oSession) { }
public void AutoTamperResponseAfter(Session oSession) { }
public void OnBeforeReturningError(Session oSession) { }
}
}
Буду признателен за любую возможную помощь ...