【问题标题】:tapisrv.exe hangs other processes when terminating from a developed program当从已开发的程序终止时,tapisrv.exe 会挂起其他进程
【发布时间】:2015-09-21 12:55:46
【问题描述】:

所以我在 VS2013 中用 C# 开发了一个程序,它利用 TAPI 在 1 个按钮上拨打电话。最初我使用 TAPI3 库,但在发现它不在工作状态后,我切换到 JulMar 的 TAPI 2 包装器。我使用的是 Windows 8 64 位,虽然该程序仅在 Win8 64 位机器上使用,但会出现此问题。

每当我从我的程序中拨打电话时,没有任何异常发生并且拨打了电话。代码运行,一切正常。但是,当我关闭使用 TAPI 的表单(即终止 tapisrv.exe)时,服务会关闭,然后每次都用它拖动其他进程。这会干扰驱动器映射、加密服务和其他取决于 PC 的服务。事件查看器中的错误日志如下;

错误应用名称:svchost.exe_TapiSrv,版本:6.3.9600.17415,时间戳:0x54504177

故障模块名称:ntdll.dll,版本:6.3.9600.18007,时间戳:0x55c4c16b

异常代码:0xc0000008

故障偏移:0x000000000009311a

错误进程 ID:0xd4

错误的应用程序启动时间:0x01d0f45613fffb86

错误的应用程序路径:C:\Windows\system32\svchost.exe

错误模块路径:C:\Windows\SYSTEM32\ntdll.dll

报告 ID:41b6967a-604a-11e5-829f-f8b156d8c3e7

故障包全名:

错误的包相关应用程序 ID:

我还收到一个信息气泡,其中包含以下信息:

故障桶,类型 0

活动名称:APPRCASH

回应:不可用

驾驶室编号:0

问题签名:

P1:svchost.exe_TapiSrv

P2:6.3.9600.17415

P3:54504177

P4:ntdll.dll

P5:6.3.9600.18007

P6: 55c4c16b

P7: c0000008

P8: 000000000009311a

P9:

P10:

附件:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\WERE5B1.tmp.appcompat.txt

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\WERE5D1.tmp.WERInternalMetadata.xml

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_svchost.exe_Tapi_881875fa9eb711f34fe5d53182d2b0c47578647_f1915213_cab_053de5df\memory.hdmp

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_svchost.exe_Tapi_881875fa9eb711f34fe5d53182d2b0c47578647_f1915213_cab_053de5df\triagedump.dmp

这些文件可能在此处可用:

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_svchost.exe_Tapi_881875fa9eb711f34fe5d53182d2b0c47578647_f1915213_cab_053de5df

分析符号:

重新检查解决方案:0

报告 ID:41b6967a-604a-11e5-829f-f8b156d8c3e7

报告状态:4

散列桶:

以前有人见过吗?难道我做错了什么?我知道有关 win8 64 位 TAPI 的其他问题,但我似乎找不到这个特定问题。

提前致谢。

【问题讨论】:

    标签: c# tapi


    【解决方案1】:

    我的猜测:您有一个错误的 TSP,当 TAPI 未初始化时会导致您的服务崩溃。

    我知道仅从 TAPI 就没有这样的崩溃。如果崩溃发生在服务内部,那么总会有一个 TSP 参与此类问题。

    1. 尝试运行 TAPI 服务isolated in its own service host。这样可以防止服务崩溃时出现问题。
    2. 使用收到的 VS 打开创建的 DMP 文件并检查导致崩溃的 DLL/代码。

    【讨论】:

      【解决方案2】:

      我发现在自己的组中运行 TapiSrv 至少可以将崩溃隔离到自己。在提升的命令提示符下运行以下命令:

      sc config Tapisrv type= own

      【讨论】:

        猜你喜欢
        • 2017-03-27
        • 2016-09-15
        • 1970-01-01
        • 2015-12-01
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        • 2021-02-14
        • 2018-05-28
        相关资源
        最近更新 更多