我最近将Azure SDK升级到1.8(从1.6开始)。在部署我们的所有Web和辅助角色时,除了1之外没有问题。
这1个工作者角色是唯一有2个实例的角色(其余是单个实例);所有dll都设置为CopyLocal =" true",连接字符串与成功联机的工作者角色相同,我看不出代码中的任何差异。
当我将远程桌面插入其中一个实例时抛出的错误是:
Faulting application name: WaHostBootstrapper.exe, version: 6.0.6002.18488, time stamp: 0x50a71329
Faulting module name: ntdll.dll, version: 6.1.7601.17696, time stamp: 0x4e8147f0
Exception code: 0xc0000374
Fault offset: 0x00000000000a0d6f
Faulting process id: 0x7d8
Faulting application start time: 0x01ce24b6e86ff75c
Faulting application path: E:\base\x64\WaHostBootstrapper.exe
Faulting module path: D:\Windows\SYSTEM32\ntdll.dll
Report Id: 33abe8c7-90aa-11e2-b534-00155d3a2649
和
A fatal error occurred when attempting to access the SSL server credential private key.
The error code returned from the cryptographic module is 0x8009030d.
The internal error state is 10001.
在Azure管理门户中,角色经历了以下循环:
我一直试图确定问题是几个小时无济于事。
下面是原始的WaHostBoostrapperLog;有许多这些日志,唯一的区别是每个日志的PID都会发生变化。
<- WapXmlReadRoleModel=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
<- WapGetAppCmdPath=0x1
<- WapSetDefaultEnvironment=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
<- WapGetAppHostConfigPath=0x1
<- GetDebugger=0x1
<- GetStartupTaskDebugger=0x1
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Executing Startup Task type=2 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe"
Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" .
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Registering client with PID 2180.
Client DiagnosticsAgent.exe (2180) registered.
Executing Startup Task type=0 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup
Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup.
Registering client with PID 1468.
Client DiagnosticsAgent.exe (1468) registered.
Program "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\Diagnostics
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Executing Startup Task type=2 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe"
Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" .
<- WapGetEnvironmentVariable=0x800700cb
<- WapGetEnvironmentVariable=0x800700cb
Registering client with PID 988.
Client RemoteAccessAgent.exe (988) registered.
Executing Startup Task type=0 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup
Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup.
Registering client with PID 1624.
Client RemoteAccessAgent.exe (1624) registered.
Program "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\RemoteAccess
<- GetDebugger=0x1
<- GetRoleHostDebugger=0x1
<- WapXmlReadContainerId=0x1
<- WapGetVirtualAccountName=0x1
Executing base\x64\WaWorkerHost.exe .
Role host process PID: 2264.
Registering client with PID 2264.
Client WaWorkerHost.exe (2264) registered.
Client process 2264 is the role host.
Role host process registered.
Getting status from client DiagnosticsAgent.exe (2180).
Client reported status 0.
Getting status from client DiagnosticsAgent.exe (1468).
Failed to connect to client DiagnosticsAgent.exe (1468).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044EB40) =0x800706ba
Getting status from client RemoteAccessAgent.exe (988).
Client reported status 0.
Getting status from client RemoteAccessAgent.exe (1624).
Failed to connect to client RemoteAccessAgent.exe (1624).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044EBD0) =0x800706ba
Getting status from client WaWorkerHost.exe (2264).
Failed to connect to client WaWorkerHost.exe (2264).
<- CRuntimeClient::OnRoleStatusCallback(0x000000000044E5A0) =0x800706ba
答案 0 :(得分:1)
在工作的工作角色和导致上述错误的角色之间进行并排比较之后;我注意到无法启动的角色对另一个辅助角色和单元测试项目都有不必要的引用。
虽然这在SDK(1.6)的早期版本中默默无效; 1.8版本似乎与其中一个参考文献有问题。
删除不必要的引用后,该角色无问题地联机。
如果遇到WaHostBootstrapper,我建议: