正如您懷疑的那樣,Remote.Disable會阻止應用程序將調試信息附加到遠程請求。它是在發出SOAP請求的.NET框架方法中定義的。
基本情況是,這些開關可以在代碼中的任何地方定義,您只需要創建一個新的System.Diagnostics.BooleanSwitch,其中給出的名稱和配置文件可以控制它們。
這尤其是一個在System.ComponentModel.CompModSwitches.DisableRemoteDebugging定義:
public static BooleanSwitch DisableRemoteDebugging
{
get
{
if (disableRemoteDebugging == null)
{
disableRemoteDebugging = new BooleanSwitch("Remote.Disable", "Disable remote debugging for web methods.");
}
return disableRemoteDebugging;
}
}
在你的情況下,它可能是從System.Web.Services.Protocols.RemoteDebugger.IsClientCallOutEnabled(),叫其正在由System.Web.Services.Protocols.WebClientProtocol.NotifyClientCallOut其又被System.Web.Services.Protocols.SoapHttpClientProtocol的Invoke方法稱爲被叫
不幸的是,據我所知,短反編譯seaching爲
new BooleanSwitch
或任何System.Diagnostics.Switch類的其他繼承人的框架&的, 有沒有簡單的方法來知道交換機是什麼定義。這似乎是搜索MSDN /谷歌/堆棧溢出的具體情況
在這種情況下,我只是用反射&搜索的字符串Remote.Disable
喜的情況下,什麼組件你需要有開放找到這些?在反射器中打開默認設置,我找不到任何匹配... – rohancragg 2009-10-28 10:05:10