我如何重写ClientHttpwebRequest.Failed()
本文关键字:ClientHttpwebRequest Failed 重写 何重写 | 更新日期: 2023-09-27 18:14:20
我有一个Windows Phone应用程序,我在7.1模拟器中运行。我有这样的代码:
WebRequest resuest = ///
using (HttpWebResponse result = (HttpWebResponse)request.GetResponse())
{
一旦控制进入GetResponse()
我首先有FileNotFound
第一次异常
文件或程序集名称"System.Windows.debug.resources, Version=2.0.5.0, Culture=en-US, PublicKeyToken=7cec85d7bea7798e",或其依赖项之一,未找到。
和下面的调用堆栈
mscorlib.dll!System.ThrowHelper.throwVersion37CompatException(System.ExceptionType newEType, string newString, System.ExceptionType oldEType, string oldString) + 0x19 bytes
mscorlib.dll!System.Reflection.Assembly.Load(string assemblyString) + 0x5d bytes
System.Windows.dll!System.Windows.Resx.Resx() + 0x29 bytes
System.Windows.dll!System.Windows.Resx.GetLoader() + 0x1f bytes
System.Windows.dll!System.Windows.Resx.GetString(string name, out bool fallbackUsed, object[] args)
System.Windows.dll!System.Windows.Resx.GetString(string name, object[] args)
System.Windows.dll!System.Net.Browser.ClientHttpWebRequest.Failed(object sender, System.EventArgs e) + 0xf8 bytes
System.Windows.dll!MS.Internal.InternalWebRequest.OnDownloadFailed(object sender, MS.Internal.ErrorEventArgs args) + 0x15 bytes
System.Windows.dll!MS.Internal.CoreInvokeHandler.InvokeEventHandler(int typeIndex, System.Delegate handlerDelegate, object sender, object args) + 0x3f4 bytes
System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, int actualArgsTypeIndex, string eventName) + 0x178 bytes
[External Code]
,当我点击"继续"时,我得到未处理的WebException
远程服务器返回一个错误:NotFound.
第一个问题看起来像是一个众所周知的问题的变体。因为这个问题,我的程序无法运行。我读到这可能在某种程度上与提琴手有关,所以我尝试了有和没有提琴手,但行为是相同的所有时间。当Fiddler运行时,我没有看到请求离开我的机器,尽管请求要发送的URL是外部网络上服务器的URL。
调用堆栈显示有一些问题导致ClientHttpWebRequest.Failed()
调用,然后后者无法工作。所以也许我可以覆盖它,以某种方式绕过有问题的代码与Resx.GetString()
?
我可以覆盖ClientHttpWebRequest.Failed()
或有问题的代码绕过?
没有真正回答最初的问题,但我似乎已经解决了这个问题。
交易是我背后的公司前沿TMG和我有前沿TMG客户端运行在我的电脑上,所以所有的程序可以有他们的请求传递到互联网。TMG服务器被称为tmgserver
。
所以我打开"Internet选项"(可从Internet Explorer访问),并在"连接"选项卡上有"局域网设置"按钮,当我点击它时,我看到有一个复选框"为您的局域网使用代理服务器",服务器名称是tmgserver
,端口号是8080。现在我只要清除复选框,点击"应用"必要的次数,问题就解决了。