我有一个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正在阻止此请求。
邮递员也没有给我更详细的信息。有人可以帮帮我吗?
答案 0 :(得分:0)
我有同样的问题,但我解决了:
我使用CORS来防止跨域错误(请参阅Chrome上的F12)和 在Azure App服务的CORS部分中添加允许的地址(添加“ *” 如果您在应用中使用安全令牌)
我遇到相同的问题 在VS2017上使用“连续交付”部分进行部署。部署在 Azure,我在Azure上创建我的Appservice,然后导出appService 发布时将其配置文件并导入到VS2017上。
因此,它的工作正常。