AXL API - CS 文件的处理时间极长



只需要一个指向正确方向的点。

我通过思科提供的说明创建了思科统一呼叫管理器API,CUCM的API称为AXL。 它目前在我的 C# WPF 项目中并且工作正常(我已经成功检索了一些电话数据),问题是 API 位于一个 345K 行长的 CS 文件中。当我尝试使用 API 执行第一个操作时(编译后),这会导致极长的延迟。

正如思科论坛上的一位用户所建议的那样:

您的问题很可能与 .net 框架生成 xml 序列化程序集所花费的时间有关。

在 .net 上使用 AXL 时预生成 xml 序列化程序集,您的第一个响应将快得多。

我尝试使用此线程中用户大脑备份中的说明预生成它。不幸的是,API 的第一次使用仍然在 ~45 秒左右(它确实减少了大约一分钟)。我对Visual Studio中的调试工具不是很精通,所以不确定如何检查导致问题的确切原因(但它肯定看起来像是与生成XML相关的问题)。

我想知道是否有人可以推荐一种方法来从CS文件中删除不必要的方法(无论如何都不会使用其中的99%),而无需手动重新创建它。任何类型的可以从CS文件中提取/删除方法及其依赖项的工具都将非常出色。

有一种方法可以检查您的方法是否已被使用,如果使用了多少次以及在哪里检查出来。

https://visualstudiomagazine.com/Blogs/Tool-Tracker/2014/12/Finding-Method-Property-Variable.aspx

削减 AXL WSDL 本身并重新编译可能是有意义的 - 如前所述,您不太可能在整个架构附近的任何地方使用。

您应该能够只编辑 AXLAPI.wsdl 并删除除您实际使用的项目之外的所有 and 元素。

有同样的问题,延迟几乎无法使用。我发现有两件事可以解决这个问题,几乎可以立即产生结果。

  1. 不要使用 WSDL。编写自己的方法来处理 SOAP 请求。需要时间并且容易出错,但结果几乎是立竿见影的。

  2. 使用可以处理大型文本文件的工具(如 Notpad++)打开 WSDL 生成的代码文件,并仅取出所需的方法。这是我选择的方法,效果很好。

另外,我相信你可以只使用executeSQLQuery方法并删除其余代码的很大一部分,但我还没有尝试过。上面的每种方法我都尝试过,没有预生成xml序列化。我发现问题出在生成的 C# axl 代码文件大小上。

最新更新