0

我有一个在 7.1 Emulator 中运行的 Windows Phone 应用程序。我有这个代码:

 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,所以我尝试了使用和不使用 Fiddler,但行为始终相同。当 Fiddler 运行时,尽管要发送请求的 URL 是外部网络上服务器的 URL,但我看不到请求离开我的机器。

调用堆栈显示有一些问题导致ClientHttpWebRequest.Failed()被调用,然后后者无法工作。所以也许我可以覆盖它并以某种方式绕过有问题的代码Resx.GetString()

我可以覆盖ClientHttpWebRequest.Failed()或绕过有问题的代码吗?

4

1 回答 1

0

不是最初问题的真正答案,但我似乎已经解决了这个问题。

这笔交易是我支持公司 Forefront TMG,并且我的计算机上运行了 Forefront TMG 客户端,因此所有程序都可以将它们的请求传递到 Internet。TMG 服务器称为 say tmgserver

所以我打开“Internet 选项”(可从 Internet Explorer 访问),在“连接”选项卡上有“LAN 设置”按钮,当我单击它时,我看到有一个复选框“为 LAN 使用代理服务器”,服务器名称是tmgserver端口号是8080。现在我只需清除复选框并单击“应用”必要的次数,问题就解决了。

于 2013-05-20T14:29:05.797 回答