加载中…
个人资料
西安域名注册
西安域名注册
  • 博客等级:
  • 博客积分:0
  • 博客访问:16,843
  • 关注人气:7
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

关于ServerErrorin/Application错误的深入理解和解决方案

(2019-11-14 10:39:32)
标签:

西安网站开发

西安网站维护

西安软件开发

前几天有个客户是个外贸网站,需要在美国购买一个境外虚拟主机放置网站,网站是c#开发的,需要运行于.net4.0以上的环境中。

在网上找了一家空间商,网站上传后提示——

Server Error in '/' Application.

经过百度查询,这是由于服务器目录权限而引发的错误。


这时候问题就来了,虚拟主机是将一台物理服务器分割成多个虚拟的区块来运行网站的,每个区块相对独立;主机服务商出于安全性的考虑往往禁止了区块内的程序,翻墙访问区块外的内容。

例如:asp.net网站编译需要有一个临时文件夹,默认位置在 c:\windows\temp下,一般情况下你是没有访问windows目录的权限的,故而会报错;

你也不用天真的要求服务商给你开通 c:\windows\temp 的读写权限,那是不可能的;如果一旦给你开通,你的网站一旦被黑客攻击成功,那么黑客就可以轻易的获得 windows内的各种文件,攻陷整台服务器只是时间问题;

貌似陷入了一个死局,无法破解?

当我们知道了原理后其实解决方案也很简单,配置web.config文件,加入一个节点,将本网站项目的编译的临时文件夹指派到另外一个位置即可;
指到哪儿呢?你对你当前的网站目录不就有读写权嘛?

1、在你的网站根目录下创建一个 temp的文件夹
2、编辑web.config文件,创建一个节点——

 
   
 

tempDirectory属性很好理解吧,就是为当前项目指派一个临时文件夹。

你以为这就完成了?还有个小问题你需要考虑到,你怎么知道你的网站在服务器的哪个物理路径下?
这不难吧,写个程序测试一下就知道了——

创建一个 t.aspx 写入代码:

string path= System.AppDomain.CurrentDomain.BaseDirectory.ToString();
Response.Write(path);

返回当前页面的物理路径


截至目前所有问题就都解决了,千万别复制上面的代码,我写这个博客是让您知其所以然,因为只有这样,以后遇到问题才好对症下药。


0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有