我已经开发了MVC 5项目,它可以在本地文件服务器和其他托管上工作,例如(dhosting,Go daddy)但是当我将它上传到共享主机(hostgator)时,它会抛出一个安全例外,即。
异常详细信息: System.Security.SecurityException:请求类型为' System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken的权限= b77a5c561934e089'失败。
当我添加<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
时,错误更改为配置错误,即
描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。
分析程序错误消息:此配置部分不能在此路径中使用。当站点管理员使用继承的配置文件锁定对此节的访问权时,会发生这种情况。
源错误:服务器上发生应用程序错误。此应用程序的当前自定义错误设置可防止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以在本地服务器计算机上运行的浏览器中查看。
有什么方法可以解决这个问题,还是应该与托管服务提供商联系以提供完全信任?
答案 0 :(得分:1)
您看到的行为是预期的 - 大多数(如果不是全部)共享托管服务提供商将不允许完全信任站点部分由于能够写入磁盘。
您的选择:
答案 1 :(得分:0)
诀窍是在内存中工作,在我的情况下,我正在使用EPPlus库创建Excel文件
var stream = new MemoryStream(package.GetAsByteArray());
Response.AppendHeader("content-disposition", "attachment; filename=MyFile.xlsx");
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(stream.ToArray());
Response.End();
答案 2 :(得分:0)
我和Hostgator有同样的问题。 Windows共享主机方案。
然后你可以去:
File.Create(@"D:\InetPub\vhosts\<yourdomain>\httpdocs\App_Data\file.txt");
我知道你问这个问题已经过去了一年。从那时起你是否设法创建文件?