zoukankan      html  css  js  c++  java
  • 解决Godaddy主机asp.net无法上传文件的问题

            Godaddy的WINDOWS主机,asp.net的信任模式为中等,如果是新站子站中使用文件操作将会出现无权限调用程序集的错误!相信很多朋友都曾尝试过很多办法,但结果非常令人失望,Godaddy不允许在Web.Config中修改信任模式,有的朋友将asp.net的版本设置为1.1,这样就可以使用完全的信任模式。那我们的程序是.net2.0甚至是.net 4.0的怎么办呢?

             以下我就会通过一个文件上传的例子来说明如何解决Goddady主机的无权限调用程序集的解决办法!

             

             如果在子站中上传文件,就会提示没有I/O操作的权限,如下图:

           

            AllowPartiallyTrustedCallersAttribute 特性允许部分分受信任的代码调用某个程序集,该特性位于System.Security命名空间下。

    只能用于程序集,只要我们为程序集添加该特性,那我们的代码就能调用System.Security.Permissions.FileIOPermission程序集。

    代码如下:

    using System.Reflection;  


    using System.Security;  

    using System.Runtime.CompilerServices;  

    using System.Runtime.InteropServices;  

       

    // 有关程序集的常规信息通过下列属性集  

    // 控制。更改这些属性值可修改  

    // 与程序集关联的信息。  

    [assembly: AllowPartiallyTrustedCallers]  

    [assembly: AssemblyCompany(
    "OPSoft Inc.")]  

    [assembly: AssemblyProduct(
    "OPSite.Web")]  

    [assembly: AssemblyCopyright(
    "版权所有 (C) www.ops.cc 2011")] 

    我们需要添加粗体部分到我们的程序集信息文件中。现在我们可以再试试上传功能,发现存储文件的时候:

    Server.MapPath("~") 返回的路径已经是根目录了,那子站的文件上传到根目录肯定没有这个权限的!

    可以使用AppDomain.CurrentDomain.BaseDirectory 获取当前程序集的目录路径。

    这样asp.net就可以完美的在goddady的子站中上传文件和I/O操作了!

    文章由刘铭(奥博网络站长)撰写,转载请保留原文地址

  • 相关阅读:
    搭建一个开源项目8-安装RabbitMQ
    搭建一个开源项目7-Redis缓存安装部署
    Java连载134-连接JDBC
    Java连载133-ResultSet接口的其他方法
    搭建一个开源项目6-安装MySql
    搭建一个开源项目5-安装python双环境以及Maven工程管理工具
    搭建一个开源项目4-安装xFTP,xShell,JDK,NODE
    搭建一个开源项目3-两种方式安装git
    给IE9及其以下等不支持classList属性的浏览器,添加classList属性
    IE9 报错 script1004缺少“;”
  • 原文地址:https://www.cnblogs.com/newmin/p/2135727.html
Copyright © 2011-2022 走看看