Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在共享主机(hostgator)中读取/写入文件_C#_Asp.net Mvc_Security_Hosting_Shared Hosting - Fatal编程技术网

C# 无法在共享主机(hostgator)中读取/写入文件

C# 无法在共享主机(hostgator)中读取/写入文件,c#,asp.net-mvc,security,hosting,shared-hosting,C#,Asp.net Mvc,Security,Hosting,Shared Hosting,我已经开发了MVC5项目,它可以在本地文件服务器和其他主机上正常工作,比如(dhosting,Go daddy),但是当我将它上传到共享主机(hostgator)时,它会抛出一个安全异常,即 异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561

我已经开发了MVC5项目,它可以在本地文件服务器和其他主机上正常工作,比如(dhosting,Go daddy),但是当我将它上传到共享主机(hostgator)时,它会抛出一个安全异常,即

异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败

当我添加
时,错误变为配置错误,即

说明:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件

分析器错误消息:此配置节不能用于此路径。当站点管理员使用继承的配置文件锁定对此节的访问时,会发生这种情况

源错误:服务器上发生应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。但是,本地服务器上运行的浏览器可以查看它


有没有办法解决这个问题,或者我应该和托管提供商谈谈,以提供完全信任

您看到的行为是预期的-大部分(如果不是全部)共享主机提供商将不允许完全信任站点,部分原因是由于能够写入磁盘

您的选择:

  • 停止使用光盘并将数据存储到数据库(如果能够在服务器之间进行实际迁移,则会带来额外的好处,备份…)
  • 专用服务器托管(虚拟服务器、Azure/Amazon/Google云中的虚拟机等)——成本将显著高于中等信任共享托管
  • 找到一些允许完全信任的共享主机(也可能意味着对可用性/性能的零保证)

诀窍是在内存中工作,在我的例子中,我正在使用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();

我和霍斯盖特也有同样的问题。Windows共享托管计划

  • 您得到解析器错误消息的原因很简单,因为您无法修改web.config文件中的信任级别。(这就是它更改为配置错误的原因)
  • Hostgator Plesk中的CAS信任级别设置仅为安慰剂
  • 解决方案:您应该将该文件夹的权限更改为要写入的完全控制。(您可以在Plesk中执行此操作)
然后你可以去:

File.Create(@"D:\InetPub\vhosts\<yourdomain>\httpdocs\App_Data\file.txt");
File.Create(@“D:\InetPub\vhosts\\httpdocs\App_Data\File.txt”);

我知道你问这个已经一年了。从那以后您是否创建了文件?

考虑到
,当*site administrator*使用继承的配置文件锁定对此节的访问时,会发生这种情况。
-是的,我想说您需要与主机提供商联系谢谢Rob,我已经读到,我使用的主机只支持中等信任,但我的应用程序需要完全信任。因此,我可能会考虑另一个主机,提供充分的访问。