Azure上的Web API重定向说资源不可用

时间:2018-06-08 08:48:09

标签: c# azure asp.net-web-api asp.net-core

我有一个web api,用户发送包含他/她的电子邮件的令牌和用户需要重定向到的url。这在我在localhost上测试时工作正常,但每当我在Azure中托管它时,它会给我以下消息:

  

您要查找的资源已被删除,名称已更改或暂时不可用。

我对Azure以及.NET API处理Redirect方法的方式都很陌生。

以下链接

  

myapi.azurewebsites.net/api/mail/track/click/verylongtoken

有以下代码

    [HttpGet("track/click/{token}")]
    public async Task<IActionResult> TrackClick(string token)
    {
        var stat = await _context.Stats.SingleOrDefaultAsync(s => s.Datum == DateTime.Today);
        var _token = await _context.TrackingToken.SingleOrDefaultAsync(tt => tt.Token == token);

        GeneratedToken decoded = new GeneratedToken();
        decoded = JsonConvert.DeserializeObject<GeneratedToken>(hasher.DecodeHash(token));

        if (_token != null)
        {
            if (stat == null)
            {
                Stats _stat = new Stats();
                _stat.Datum = DateTime.Today;
                _stat.Geopend = 0;
                _stat.Geklikt = 0;
                _stat.Verstuurd = 0;

                _context.Stats.Add(_stat);
                await _context.SaveChangesAsync();

                stat = await _context.Stats.SingleOrDefaultAsync(s => s.Datum == DateTime.Today);
            }

            stat.Geklikt++;

            _context.TrackingToken.Remove(_token);
            _context.Entry(stat).State = EntityState.Modified;
            await _context.SaveChangesAsync();
        }

        return Redirect("http://"+decoded.link);
    }

正如您所看到的,我还在第一次请求后删除了令牌。我知道这可能会导致问题,但是当我使用新的未使用的令牌时也会出现问题。该代码在localhost上完美运行,但我怀疑Azure正在阻止此请求。

邮递员也没有给我更详细的信息。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,但我解决了:

  • 我使用CORS来防止跨域错误(请参阅Chrome上的F12)和 在Azure App服务的CORS部分中添加允许的地址(添加“ *” 如果您在应用中使用安全令牌)

  • 我遇到相同的问题 在VS2017上使用“连续交付”部分进行部署。部署在 Azure,我在Azure上创建我的Appservice,然后导出appService 发布时将其配置文件并导入到VS2017上。

因此,它的工作正常。