我有FiddlerApplication
的项目,为我节省了一些课程。当我启动程序时,首次启动后重启100%失败然后10%失败90%工作。
最大的问题是,当它失败时,它不会在try / catch中捕获任何异常。这是我的代码
static class Program
{
[STAThread]
static void Main(string[] args)
{
try
{
browserToRun.GoTo("www.test.com");
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
//HERE it fails
FiddlerApplication.Startup(8888, true, true, true);
FiddlerApplication.Shutdown();
}
catch (Exception ex)
{
// it is not getting to here
FiddlerApplication.AfterSessionComplete -= FiddlerApplication_AfterSessionComplete;
FiddlerApplication.Shutdown();
}
}
public static void FiddlerApplication_AfterSessionComplete(Session sess)
{
try
{
if (!sess.fullUrl.Contains("test"))
return;
GlobalDownloadLink = sess.fullUrl;
}
catch (Exception ex)
{
successful = false;
throw new System.ArgumentException(ex.Message, "FiddlerApplication_AfterSessionComplete");
}
}
}
我的新更新的Apconfig with new error配置系统无法初始化
<configuration>
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
<configSections>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
<appSettings>
<add key="BrowserShow" value="Y"/>
<add key="DebugCreate" value="true"/>
<add key="FileName10" value="AccountActivity"/>
<add key="FileName20" value="ForeignActivities"/>
<add key="FileNameShar" value="MatbeotSchirim"/>
</appSettings>
</configuration>
答案 0 :(得分:4)
尝试添加
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
到配置文件。 来源here。
答案 1 :(得分:4)
除非您在代码中的函数([HandleProcessCorruptedStateExceptions]
函数)上指定属性Main
,否则某些异常不会被try..catch块捕获。当然,可以通过修改配置文件来完成相同的操作,如Oxoron所述。
答案 2 :(得分:0)
您的代码中的一个问题是您从处理Sessions的后台线程中抛出System.ArgumentException
;这些异常不会被主线程上的异常处理程序捕获。
除此之外,你现在编写代码的方式是错误的;调用Startup
然后立即调用Shutdown
将无效。