在WebRole中调用时,Environment.GetEnvironmentVariable(“ RoleRoot”)返回null
|
我有一个方法(在单独的类库中),该方法由WebRole和WorkerRole调用。此方法包含文件路径,该文件路径使用
Environment.GetEnvironmentVariable(\"RoleRoot\")
返回,如下所示:
private string FooPath()
{
string appRoot = Environment.GetEnvironmentVariable(\"RoleRoot\");
return Path.Combine(appRoot + @\"\\\", @\"approot\\file.foo\");
}
当我从WorkerRole调用此方法时,路径将正常返回。但是,当我从WebRole调用它时,我会得到2英镑。
有任何想法吗?
编辑:我正在使用APNS-Sharp将推送消息发送到iOS,并且它需要一个.p12证书才能正常工作。目前,我的类库(由WebRole和WorkerRole调用)的根目录中都有.p12。但问题是:为什么当我从WebRole调用RoleRoot
时返回null,而从WorkerRole调用时却返回路径?
没有找到相关结果
已邀请:
3 个回复
锹缄
对于WebRole返回false,因为WebRole使用IIS就像正常的网站一样。这就是为什么很难从WebRole获取环境变量的原因。 为了正确获取路径,我不得不使用经典的Server.MapPath并引用
文件夹,而不是
:
对于WorkerRole,什么都没有改变:
此外,我发现Azure不会导入p12证书。我将不得不将其转换为另一种格式,我认为这不会对我有用。因此,最好的选择是将它们放置在应用程序的根目录上,并将其“构建操作”标记为“内容”。
舜辉
呈辖玫割善