Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google analytics wix自定义操作发送http post不工作_Google Analytics_Wix_Windows Installer_Http Post - Fatal编程技术网

Google analytics wix自定义操作发送http post不工作

Google analytics wix自定义操作发送http post不工作,google-analytics,wix,windows-installer,http-post,Google Analytics,Wix,Windows Installer,Http Post,我有一个自定义操作,可以发送http帖子到google analytics以跟踪安装。我的自定义操作执行其他操作,这些操作正在运行。所以我知道我的自定义操作正在被调用。我正在使用HttpClient,它需要对System.Net.Http的引用。我认为问题在于参考文献。为了确保能找到参考资料,我有什么特别的事情要做吗 我在一个单独的项目中测试了代码,以确保代码能够正常工作,而且确实如此。当我尝试运行msi时,它只是无法安装。我将整个http post放在一个try语句中,以完成此操作,因此至少安

我有一个自定义操作,可以发送http帖子到google analytics以跟踪安装。我的自定义操作执行其他操作,这些操作正在运行。所以我知道我的自定义操作正在被调用。我正在使用HttpClient,它需要对System.Net.Http的引用。我认为问题在于参考文献。为了确保能找到参考资料,我有什么特别的事情要做吗

我在一个单独的项目中测试了代码,以确保代码能够正常工作,而且确实如此。当我尝试运行msi时,它只是无法安装。我将整个http post放在一个try语句中,以完成此操作,因此至少安装不会失败

有人知道它可能是什么或检查什么吗

更新评论:为了解决否决票问题:由于MSI技术的整体性质,不建议在MSI设置中访问Internet。这是一项古老的技术,不是为互联网时代设计的。早在90年代,它就被设计用来安装Microsoft Office(尽管有传言说Windows应用商店可能允许MSI文件在2021年下载)

甚至从自定义操作访问本地网络也很困难,因为 在延迟模式下运行时模拟为系统(自定义 具有系统管理员访问权限的操作)

正常情况下,
系统
上下文可以通过 这台机器只有一个帐户地图是

代理服务器
防火墙
安全软件
其他机制
可能会产生干扰 使用非系统上下文自定义操作尝试访问Internet。 部署包时,也可能没有用户登录 默默地

只需向注册表写入一个标志,让应用程序在应用程序启动时报告新安装或更新

代理服务器上的注意事项:表示机器没有直接的Internet访问权限,但必须通过专用于“网关”的机器访问Internet。回想当年,我常常通过阅读IE设置来“发现”代理设置,但总的来说:不要假设可以直接访问互联网


出于可靠性原因,设置不应该做这样复杂的事情您可以在应用程序中执行此操作吗?然后您将处于一个更可预测的模拟环境中,具有完全的Internet访问和用户交互功能(如果需要)。更可靠、更容易调试,并且您可以与用户交互以解决连接问题。如果一开始失败,你可以再试很多次。相比之下,设置是“一次性的”,调试起来要困难得多

请记住,大多数公司部署都是在静默安装模式下完成的。当安装程序在静默模式下运行时,您必须抑制所有可能需要Internet访问或某种交互的奇特功能。通过设置访问互联网是一种反模式,至少目前如此,未来的在线部署技术可能会改变这一事实。但是,在静默的公司安装过程中,您的安装程序可能会在系统上下文中运行,根本无法访问Internet(系统帐户无法访问Internet-除非网络设置疯狂)。您在尝试连接和触发异常时也可能导致崩溃,您还可能触发安全软件干扰——这种情况发生在“异常设置行为”中

即使用户使用正确的用户上下文运行您的安装程序,也可能有一个代理服务器,您必须使用该服务器访问web,然后您的连接仍将失败,除非您从系统检索代理设置。我从来没有在安装中这样做过——同样,因为在我看来,安装不应该要求互联网接入

请记住,.NET framework在所有操作系统版本的所有“通用版本”中仍然不可用

希望这对你有意义请将此功能放入应用程序中。在操作运行后标记注册表-如果它只运行一次。如果您在那里打开一些ACL以允许任何人写入标志,您甚至可以向HKLM写入


更新:缩短摘要。如果出现以下情况,则在设置中执行此操作将失败:

  • .NET framework缺少、禁用或版本错误
    • 越来越少的问题,但仍然在这里和那里失踪
  • Internet访问需要Internet代理
  • 使用延迟模式CA(用于读/写系统访问)(不允许Internet访问)
  • 通过配电系统静默安装(应不允许互联网接入)
  • 交互式静默安装(最有可能失败,视情况而定)
  • 可能存在来自安全软件的干扰(异常设置活动)。
    • 防病毒/恶意软件保护
    • 防火墙(阻止msiexec.exe)
  • GUI需求?您是否尝试从控制台应用程序运行组件
  • 记录你的MSI

  • 在自定义操作中提供日志记录。MSI不知道它在做什么,所以你需要记录,记录,记录

  • 阅读MSI日志

  • 我不怀疑丢失了.NET,因为try-catch不会有什么区别,因为CLR永远不会启动。我怀疑您会发现从HttpClient中获取错误,表明远程主机无法连接

    很可能与代理相关。Internet连接在任何安装程序环境中都不是普遍不可用的(web下载和web下载静默安装程序如何工作??),但这也不是一件确定的事情。每个客户/站点/机器都可能不同,因此您可能无法通过

    我会请客