• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

解决Godaddy主机asp.net无法上传文件的问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

        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操作了!

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net真正意义上的裁减图片发布时间:2022-07-10
下一篇:
Asp.net中Get,Set的详细说明发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap