ошибка "Не найден активный контекст для установки свойства" в Azure - PullRequest
0 голосов
/ 08 мая 2018

`const httpContext = require ('request-context'); const app = express (); app.use (httpContext.middleware ( 'запрос'));

httpContext.set ('xxxxx', 'jnsdkj'); ` Выдает ошибку «Не найден активный контекст для установки свойства» он работает локально, но не работает на лазурном это сработало раньше.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Локально я использую версию узла 8.7.0 в лазури, его разрешение до 10.0 если мы не упомянем указанную версию в package.json, Azure использует последние версии Чтобы избежать этой путаницы

В package.json укажите версию, которую вы разрабатываете

"engines": {
"node": "8.7.0"  // mentioning >= causes to use latest version

},

0 голосов
/ 09 мая 2018

Я проверил пакет request-context и создал образец веб-приложения Azure для проверки этой проблемы.

app.js

const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')
const httpContext = require('request-context')
app.use(httpContext.middleware('request'))
app.use(cookieParser())

app.use(function (req, res, next) {
        var cookie = req.cookies.uname;
        console.log("usercookie:"+cookie);
        if(cookie!=undefined){
        // set the user who made this request on the context
            httpContext.set('request:user', {username:cookie,loggedTime:req.cookies.loggedTime});
        }
        next();
});

app.get('/login', (req, res) => {
    var user=req.query.name;
    if(user==undefined)
       res.send('you need to pass the username.');
    else{
        //set a cookie
        res.cookie('uname',user, { maxAge: 900000, httpOnly: true });
        res.cookie('loggedTime',new Date(), { maxAge: 900000, httpOnly: true });
        console.log('cookie created successfully');
        res.send('login successed.');
    }
 });

app.get('/', (req, res) => {
    res.send('Hello World!');
    });

app.get('/me',(req,res)=>{
    res.send('Hello World!'+httpContext.get('request:user.username')+",loggedTime:"+httpContext.get('request:user.loggedTime'));
});

app.listen(process.env.PORT || 3000, () => console.log('Example app listening on port 3000!'))

Package.json

  "dependencies": {
    "cookie-parser": "^1.4.3",
    "express": "^4.16.3",
    "request-context": "^2.0.0"
  }

TEST:

https://brucenode.azurewebsites.net/login?name=bruce

https://brucenode.azurewebsites.net/me

httpContext.set ('xxxxx', 'jnsdkj'); `Выдает ошибку 'Не найден активный контекст для установки свойства'

Я предположил, что вам может понадобиться проверить ваш код и убедиться, что вы вызываете httpContext.set. Для веб-приложения Azure можно также включить ведение журнала диагностики для веб-приложений в службе приложений Azure , чтобы устранить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...