Azure Service过大,导致不能直接发布,提示内存不足
在编写Azure Service程序时,若用到很多静态文件,如图片、模型等,直接用Visual Studio发布时会提示内存错误。因为用VS提交时,Azure Service上传的文件不能超过600M,而实际中,你的静态文件远远小于600M却报错了。产生这个错误的原因可能多种。
a. 你的物理内存不够了。
b. Visual Studio出现问题。这时你可能需要重启一下VS,再试一试。
c. 你的静态文件的确太大了。因为这个600M的限制是上传的所有文件的大小,上传文件中,除了你的文件外,还有Azure SDK包。
若是第3种原因,有两种方法可以解决问题。
a. 将静态文件放在Azure Storage中(Blob)。然后每次读取文件的操作改成从Blob中读取文件。
b. 上述方法需要修改代码,且若程序需要在线下运行,便需要维护两份不同的代码,维护成本大大增加。下面这种方法可能可以解决问题。
右键Azure Cloud Service项目,点击Package
弹出的框中,选择服务配置文件,点击Package按钮。
打包成功后,会自动弹出一个文件浏览窗口,一般会包含三个文件,cspkg格式文件为程序包,cscfg为配置文件,extensions文件夹(里面似乎没有任何东西)
将cscfg和cspkg文件上传至blob中。
进入Azure Portal,进入要更新的Azure Cloud Service面板,点击页面下方的更新按钮。
在弹出的框中,设置部署标签(设置后方便知道是否发布成功),选择程序包来自存储区(4步中的cspkg文件),选择配置来自存储区(4步中的cscfg文件),下方两个复选框建议勾选上。
0 条评论