Azure的Worker角色上osFamily =&QUOT运行; 2英寸(服务器2008R2),但上失败osFamily = QUOT; 3英寸(Server 2012中) [英] Azure Worker Role runs on osFamily="2" (Server 2008R2) but Fails on osFamily="3" (Server 2012)

查看:150
本文介绍了Azure的Worker角色上osFamily =&QUOT运行; 2英寸(服务器2008R2),但上失败osFamily = QUOT; 3英寸(Server 2012中)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们拥有的Azure工作者角色 - .NET 4.0 - 部署到Azure的osFamily =2(服务器2008R2)上时,运行正常。然而,当我们部署osFamily =3(服务器2012)和没有其他code变化,辅助角色不断与服务器的事件日志以下2个错误回收:

We have an Azure worker role - .NET 4.0 - that runs fine when deployed to Azure on osFamily="2" (Server 2008R2). However, when we deploy with osFamily="3" (Server 2012) and no other code changes, the worker role continually recycles with the following 2 errors in the server event logs:

错误应用程序名称:WaWorkerHost.exe,版本:6.0.6002.18488,时间戳:0x505cf7ca
  错误模块名称:KERNELBASE.dll,版本:6.2.9200.16384,时间戳:0x5010ab2d
  异常code:0xe0434352
  故障偏移:0x00000000000189cc
  出错进程ID:0xefc
  错误的应用程序启动时间:0x01cdd4318f76d221
  错误的应用程序路径:E:\\基地\\ 64 \\ WaWorkerHost.exe
  错误模块路径:D:\\ WINDOWS \\ SYSTEM32 \\ KERNELBASE.dll
  报告编号:cf1810b0-4024-11e2-93ec-00155d4250e3
  断裂封装的全名:
  断层包相关的应用ID:

Faulting application name: WaWorkerHost.exe, version: 6.0.6002.18488, time stamp: 0x505cf7ca Faulting module name: KERNELBASE.dll, version: 6.2.9200.16384, time stamp: 0x5010ab2d Exception code: 0xe0434352 Fault offset: 0x00000000000189cc Faulting process id: 0xefc Faulting application start time: 0x01cdd4318f76d221 Faulting application path: E:\base\x64\WaWorkerHost.exe Faulting module path: D:\Windows\system32\KERNELBASE.dll Report Id: cf1810b0-4024-11e2-93ec-00155d4250e3 Faulting package full name: Faulting package-relative application ID:

应用:WaWorkerHost.exe
  Framework版本:v4.0.30319
  说明:该过程由于未处理的异常终止。
  异常信息信息:System.InvalidOperationException
  堆栈:
     在Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.b__0()
     在System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object的,布尔)
     在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object的,布尔)
     在System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object的)
     在System.Threading.ThreadHelper.ThreadStart()

Application: WaWorkerHost.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidOperationException Stack: at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.b__0() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()

任何想法?

更新------------------发现了第3异常:

UPDATE ------------------ Found a 3rd exception:

应用:WaWorkerHost.exe Framework版本:v4.0.30319
  说明:该过程由于未处理的异常终止。
  异常信息:System.Security.Cryptography.CryptographicException
  堆栈:在
  Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.b__0()
  在
  System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
  System.Threading.ContextCallback,System.Object的,布尔)在
  System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
  System.Threading.ContextCallback,System.Object的,布尔)在
  System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
  System.Threading.ContextCallback,System.Object的)在
  System.Threading.ThreadHelper.ThreadStart()

Application: WaWorkerHost.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.Security.Cryptography.CryptographicException Stack: at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.b__0() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()

我们正在使用的证书中LocalComputer /我来解密连接字符串。该证书被成功部署到OsFamily =2(服务器2008R2),并具有辅助角色用户添加私钥(在RDP会话验证)。然而,对于OsFamily =3(服务器2012) - 证书没有得到部署,因此加密错误。与Azure支持跟进...啊。

We are using a certificate in LocalComputer/My to decrypt connection strings. The certificate gets deployed successfully to OsFamily="2" (Server 2008R2) and has the Worker role user added to the Private Key (verified in RDP session). However, for OsFamily="3" (Server 2012) - the certificate doesn't get deployed, hence the crypto error. Following up with Azure support...UGH.

推荐答案

从Azure支持工程师:

From Azure Support Engineers:

更深的挖掘后,我发现区别:在OS家庭2,
  WaWorkerHost是由一个临时帐户下运行(与GUID名称)
  按角色的初始化过程中产生的,该帐户有权
  访问证书私钥;在OS家庭3,WaWorkerHost是
  通过网络服务帐户下运行,该帐户没有
  私钥访问权限。

After digging deeper, I found the difference: In OS Family 2, WaWorkerHost is running by a temporary account (with a GUID name) generated by Role initialization process, this account has permission to access certificate private key; In OS Family 3, WaWorkerHost is running by "NETWORK SERVICE" account, this account doesn’t have private key access permission.

我接触的生产集团,我们将调查此问题
  更深。我会及时向大家发布。

I’m contacting production group, we will investigate this issue deeper. I will keep you posted.

这篇关于Azure的Worker角色上osFamily =&QUOT运行; 2英寸(服务器2008R2),但上失败osFamily = QUOT; 3英寸(Server 2012中)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆