通过Visual Studio部署到Azure Cloud Service时,未设置环境variables

在Azure云服务中遇到一些环境variables问题。 我想通过ServiceDefentition.csdef文件在部署期间设置一个“NODE_ENV”环境variables。

该variables是由我的node.js应用程序通过process.env.NODE_ENV读入。

这个文档不是非常广泛的(因为这似乎是一个非常简单的事情),但这是我一直以来: link1 link2

我有的ServiceDefinition文件的部分是以下内容:

<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="userApiServer" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6"> <WebRole name="userApiWebRole" vmsize="Large"> ... <Runtime> <Environment> <Variable name="NODE_ENV" value="dev" /> </Environment> </Runtime> ... </WebRole> </ServiceDefinition> 

我尝试了很多变化; 设置启动任务下的envvariables,而不是运行时,使用xpaths来configuration设置,但他们似乎并没有为我创buildenvvariables。

当用xpaths方法搞乱时,我发现我的configuration设置是在实例上创build的,所以正在读取定义文件。

是否有任何常见(或不常见)的疑难杂症或隐藏的细节,我错过了,因为对于显然非常简单的东西,我有很多麻烦。

web.configiisnode.yml设置node_envvariables是正确的, iisnode.yml AIDAN CASEY说。

另外,我们可以利用纯的Node.js第三方模块dotenv 。 只需要创build一个名为.env的文件,内容如下:

 node_env=production 

在Nodejs脚本中包含并初始化模块:

 require('dotenv').load(); 

你可以做它编辑或者做web.config或iisnode.yml。 看看这个答案

将iisnode中的Node.js环境variables(NODE_ENV)设置为Production / Development / Test