在Azure上拒绝Server.MapPath访问

时间:2013-12-26 10:25:07

标签: c# excel azure

我正在使用c#代码和spreadsheetlight dll导出excel。 我想在excel中插入一张图片,一切都在本地机器上运行良好,但在实时网站上却出现以下错误

Access to the path 'F:\sitesroot\0\Images\Logo.png' is denied

我的c#代码。

string filePath = Server.MapPath("~/Images/Logo.png");
SLPicture pic = new SLPicture(filePath); //SLPicture - An inbuilt class for inserting image

目前我正在做的是在IIS服务器上手动提供访问权限,但这不是正确的方法,因为每次上传服务时我都要一次又一次地重做

任何专家建议 - 如何通过代码提供访问权限? 或者如何摆脱这个错误。

感谢。

1 个答案:

答案 0 :(得分:2)

假设您正在使用云服务......

您应该使用本地存储(http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx)。

基本上;

  1. 在您的Cloud项目中,转到“角色”的属性,然后选择“本地存储”。
  2. 添加新的本地存储并为其命名,即“foo”和最大大小。如果这是用于临时处理而不是缓存,您可能需要勾选“清理角色回收”。
  3. 在您的代码调用RoleEnvironment.GetLocalResource("foo")中获取您可以使用的文件夹名称,然后执行Path.Combine("path","Logo.png")之类的操作以获取您可以写入的文件名。