【问题标题】:How to store library's resources in azure如何在 Azure 中存储库的资源
【发布时间】:2015-10-23 01:50:39
【问题描述】:

我正在创建使用NMeCab 库的移动服务,它需要使用Server.MapPath 从代码中引用的字典文件

DicDir =  HttpContext.Current.Server.MapPath(@"../App_Data/ipadic")

当我在本地运行服务时,它工作正常,但是当我在 azure System.IO.DirectoryNotFoundException: Could not find a part of the path 上发布服务时被抛出

我在谷歌上搜索并在 SO 上找到了 this topic,建议使用 LocalResource 来指代本地存储,但我认为这应该用于上传服务的情况,而这不是我的情况。
那么,如何将这些资源存储在 azure 中?

【问题讨论】:

  • 您没有提供足够的信息来诊断特定问题。您使用的是移动服务还是 Azure 应用服务移动应用?
  • @AdrianHall 当你问我时我很困惑,我正在使用移动服务来公开 Web API,以便我可以从我的 android 应用程序中使用它。
  • 谢谢 - 有两种类型的移动应用程序,很多人对这两种应用程序感到困惑。会回答的。

标签: azure azure-mobile-services


【解决方案1】:

LocalResource 区域(也称为 App_Data)用于任何临时数据。如果要存储永久数据,则应使用其中一种 Azure 存储 API 来处理它。但是,临时数据可以存储在磁盘上。正如您引用的主题所建议的那样,您应该使用 LocalResource:

LocalResource localResource = RoleEnvironment.GetLocalResource("DownloadedTemplates")

您的路径不起作用的原因是它假定当前目录位于特定位置,因此 App_Data 是相对于该位置的。移动服务并非如此。请改用 LocalResource。

通过示例引用 LocalResource:https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironment.getlocalresource.aspx

【讨论】:

  • 非常抱歉,我想我回答错了,我在 Azure 上使用这个服务cuptured from azure portal 你叫这个 Azure App Service 移动应用吗?
  • 否 - 那是 Azure 移动服务。 LocalResource 应该仍然可以工作。
  • 当我尝试使用 RoleEnvironment 时,我得到了InvalidOperationException: the role environment has not been initializedInteropServices.SEHException (0x80004005): External component has thrown an exception.,我已经在 VS 中将此项目设置为启动项目,我该如何解决这个问题?
  • 如果我设法使用 RoleEnvironment,据我所知,当我将移动服务项目(我从 Azure 的 GET STARTED 部分下载以修改它)从 VS 发布到 Azure 中的每个文件和子目录时App_Data 将被上传到 LocalResource 区域,所以,我是否必须将目录指定为 DicDir = RoleEnvironment.GetLocalResource("ipadic").RootPath 而无需在 ServiceDefinition.csdef 中指定 (我找不到这个文件)?
猜你喜欢
  • 2019-05-20
  • 2018-01-16
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2021-06-10
  • 2020-08-18
  • 1970-01-01
相关资源
最近更新 更多