我试图让Wasabi(企业库自动扩展块)在Azure辅助角色中工作。 Wasabi工作者角色(超小,完全信任)正在同一服务中扩展不同的工作角色。它可以从本地控制台应用程序完美地运行,具有相同的配置 - 鉴于错误,证书不会进入VM。我使用的是最新版本的Azure SDK,企业库自动调节模块和Azure门户。
以下是我采取的步骤,基于以下文档:http://msdn.microsoft.com/en-us/library/hh680937(v=pandp.50).aspx
我尝试了LocalMachine \ My store(在角色证书设置和服务信息存储XML中配置),我得到了Azure WASABi SecurityNegotiationException中列出的错误的异常。这个修复最终要转到CurrentUser,所以这对我没有帮助。
我尝试了很多其他CurrentUser \ LocalMachine和不同商店的组合,所有CurrentUser位置都会导致找不到证书,所有LocalMachine存储都会导致另一个例外。
我在角色设置,门户网站(证书页面)和服务信息文件中对指纹进行了三重检查,它们都匹配。
然后我启用了远程桌面并登录到Wasabi角色实例,并使用MMC查看本地计算机和当前用户的证书配置。当我在角色证书设置中选择LocalMachine商店时,证书确实显示在LocalMachine商店中,该商店告诉我证书已在服务中正确安装且指纹匹配。选择CurrentUser存储时,证书在任何地方都不可见。这可能是因为RDP使用的用户与服务不是同一用户,但它确实与错误匹配。
所以,总结一下:
有什么想法吗?
谢谢!
答案 0 :(得分:3)
请参阅我对此SO POST的回答。证书必须位于LocalMachine中,并且由于SDK 1.8和Server2012角色初始化中的配置更改,您必须运行具有提升权限的辅助角色,以授予NETWORK SERVICE访问证书私钥的权限。编辑ServiceDefinition.csdef
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="blah" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
<WorkerRole name="blah" vmsize="Small">
<Runtime executionContext="elevated" />
...
</WorkerRole>
</ServiceDefinition>