
private string FooPath() { string appRoot = Environment.GetEnvironmentvariable("RoleRoot"); return Path.Combine(appRoot + @"\",@"approot\file.foo");} 当我从WorkerRole调用此方法时,路径将正常返回.但是当我从Webrole调用它时,我得到null.
有任何想法吗?
编辑:我使用APNS-Sharp向iOS发送推送消息,它需要一个.p12证书才能工作.目前我在我的类库的根目录中有.p12(由Webrole和WorkerRole调用).但关键是:当我从Webrole调用RoleRoot时,为什么RoleRoot返回null,但是当我从WorkerRole调用时返回路径?
解决方法 RoleRoot为Webrole返回false,因为Webrole使用IIS,就像普通网站一样.这就是为什么从Webrole获取环境变量很困难的原因.为了正确获取路径,我必须使用经典的Server.MapPath并引用bin文件夹,而不是approot:
private string FooPathWebrole() { string appRoot = httpContext.Current.Server.MapPath(@"~\"); return Path.Combine(appRoot + @"\",@"bin\file.foo");} 对于WorkerRole,没有任何改变:
private string FooPathWorkerRole() { string appRoot = Environment.GetEnvironmentvariable("RoleRoot"); return Path.Combine(appRoot + @"\",@"approot\file.foo");} 此外,我发现Azure不会导入p12证书.我不得不将它转换成另一种格式,我认为这种格式对我不起作用.因此,最好的选择是将它们放在应用程序的根目录上,并将其Build Action标记为Content.
总结以上是内存溢出为你收集整理的azure – Environment.GetEnvironmentVariable(“RoleRoot”)在WebRole中调用时返回null全部内容,希望文章能够帮你解决azure – Environment.GetEnvironmentVariable(“RoleRoot”)在WebRole中调用时返回null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)