使用ARR模块为每个请求生成时,SAS令牌失败,403错误

时间:2014-08-04 14:39:24

标签: iis azure-storage arr azure-storage-blobs

我们正在做一个电子学习应用程序,它在浏览器上播放课程(在div控件内)。该课程包含静态内容列表,如html,js,css等,以及媒体文件.mp4。我们将静态内容(.html,.js,.css等)托管到Azure blob存储和媒体文件到Media Service和CDN中。

当用户触发参加课程时,浏览器首先请求具有登录页面的Web角色(例如:FirstPage.html)和课程唯一ID - 例如:https://cloudservice1.cloudapp.net/course/courseid/firstpage.html。我们编写了一个自定义ARR模块(http://www.iis.net/learn/extensions/url-rewrite-module/developing-a-custom-rewrite-provider-for-url-rewrite-module),它接收请求,解析它并使用SAS令牌生成blob存储URL,每个文件使用C#代码。然后路由到blob存储。 (我们已经使用Web.config将存储帐户详细信息传递给ARR模块)

对于单个用户,课程播放正常​​。但是我们用>进行负载测试。 400个用户负载(有5个实例),我们得到了很多403错误(而不是所有文件)。如果负载小于200,我们就不会遇到这样的问题。

此外,我们使用REST代码生成SAS令牌。当SAS令牌到期时间延长超过60分钟时,出现错误“无签名标识符的访问时间窗口不能超过1小时”。由于代码存在于ARR模块中,因此无法引用Storage Client程序集。这个60分钟的时间间隔适用于每个文件请求 - 因此在到期时不会出现问题,但感觉这可能是一个问题?

你能指出我可能会遇到什么问题以及如何解决这个问题。 ARR模块是否缓存SAS令牌并在到期时间后提供相同的功能?

非常感谢,Thirumalai M

0 个答案:

没有答案
相关问题