【问题标题】:ClickOnce WPF application using HttpClient使用 HttpClient 的 ClickOnce WPF 应用程序
【发布时间】:2015-01-10 19:21:02
【问题描述】:

我有一个 WPF 应用程序,我计划使用 ClickOnce 分发它。我已经开发了几个月,现在准备发布。在装有 Windows 7、.Net Framework 4.51 和 VS 2013 的开发人员计算机上一切正常。

但现在我在其他计算机上进行测试。应用程序启动仍然很好,但启动后下一步是与 Web 服务器同步并下载初始内容。在那里它立即崩溃!

Windows 在应用程序关闭之前给了我一些问题信息:

    Problem name:               CLR20r3
    Problem signature 01:       myapplication.exe
    Problem signature 02:       0.1.0.0
    Problem signature 03:       54b1359b
    Problem signature 04:       System
    Problem signature 05:       4.0.30319.34238
    Problem signature 06:       53e450ed
    Problem signature 07:       2f90
    Problem signature 08:       15d
    Problem signature 09:       System.Net.Http.HttpRequest
    OS version:                 6.1.7601.2.1.0.256.48
    Language variant-ID:        1053
    Further information 1:      0a9e
    Further information 2:      0a9e372d3b4ad19135b953a78882e789
    Further information 3:      0a9e
    Further information 4:      0a9e372d3b4ad19135b953a78882e789

(为便于阅读,左栏是我从瑞典语翻译过来的)

我搜索了提示,但没有找到任何帮助。

测试计算机具有 Windows 7 和 .Net Framework 4.51。在 Windows 8.1 上也会出现同样的问题。

System.Net.Http.HttpRequest 按预期存在于 Windows\Microsoft.NET\Framework\v4.0.30319 中。

我可以配置 Fiddler 来检测从 .Net 客户端发送的流量吗?目前,两台机器上都没有检测到流量。

感谢任何提示!

通过检查特定的 HttpRequestException,我现在在内部异常中发现了这一点:“无法连接到远程服务器”

我以标准方式创建了一个 Azure 网站,并从 WPF 客户端调用了 WebApi。 ClickOnce 配置了“这是完全信任的应用程序”。

在两台计算机上发出相同的呼叫。这些计算机位于同一本地网络上。机器上是否存在 Visual Studio 会产生影响吗?

【问题讨论】:

  • 放入 try/catch'es 并将异常写入文件。 logging.apache.org/log4net
  • 是的,这当然是显而易见的方式。但我也没有发现日志很有帮助。调用 HttpClient PostAsync 方法时,我收到此错误:发送请求时发生错误。,在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System. Runtime.CompilerServices.TaskAwaiter`1.GetResult() at SongService.DomainServices.GenericRequestHandler.d__4.MoveNext() 对此有何建议?
  • 对所有的混乱感到抱歉。最初的问题是由错误的配置引起的...... :( 下面建议的 Fiddler defaultProxy 实际上导致了所有其他问题。当配置正确并且 defaultProxy 被删除时,一切都很好了!

标签: c# .net wpf http clickonce


【解决方案1】:

要让 Fiddler 捕获流量,请在您的客户端程序的配置文件中添加以下配置,或者您可以选择编程选项来添加它。

<system.net>
    <defaultProxy enabled = "true" useDefaultCredentials = "true">
       <proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888"  usesystemdefault="false" />
    </defaultProxy>
</system.net>

【讨论】:

  • 我试过了,但它仍然没有在 Fiddler 中显示任何内容,甚至在开发人员机器上也没有...
  • 您是否将 HttpRequest 的代理属性设置为空?如果是这样,则不要将其设置为空。您还可以尝试一件事。启用 System.Net 跟踪。请参阅此link,了解如何启用跟踪。日志文件将生成在与程序相同的目录中。
猜你喜欢
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多