asp.net对于路径的依赖太严重了,不好用

owen1759 2008-05-26 01:57:23
在你无权建立新的虚拟目录的情况下(实际上这种情况是虚拟主机用户经常遇到的)
你就必须把web.config文件App_Code目录bin目录等东西都放在根目录下
所以要想在一个虚拟主机下放入两个或多个asp.net程序会是一件十分困难的事
而这种需要是常常有的,比如主站下面还要放一个论坛、或者要搭配一个博客系统
而asp/php以及其他很多网页语言都没有这样硬性的路径要求
如果不需要整合用户数据的话,假如使用相对路径
asp/php的程序基本上可以直接全部复制到任何一个文件夹都可以完全正常运行
但asp.net不放在根目录或者虚拟目录就会出错,这种硬性规定路径的设计实在是太差了
...全文
420 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
suzhu2500084 2008-06-23
  • 打赏
  • 举报
回复
找不到好的方法就说不行,新手的回答
hubblebubblepig 2008-06-23
  • 打赏
  • 举报
回复
根目录下的文件夹中的web.config里面的配置 会对根目录下的web.config里面的配置进行覆盖(类似于程序里面的override)
54sh 2008-06-23
  • 打赏
  • 举报
回复
asp.net 程序也可以放在文件夹里,只不过需要把 web.config 和 bin 文件夹 放在根目录下。

因此 需要考虑重名的 就是 dll 了,而并非 index.aspx 之类的页面文件。
54sh 2008-06-23
  • 打赏
  • 举报
回复

.NET规定死了必须放在根目录、又规定死了文件名。

规定了根目录 的是 web.config 和 bin 文件夹。

至于你的项目 可以在虚拟目录的不同文件夹里,运行的时候无非加点文件夹名称,而并非是根目录下。

只程序不过运行的时候,在根目录下去寻找 web.config 和 对应的dll.

这么说,再该明白了吧。
datahandler2 2008-06-22
  • 打赏
  • 举报
回复
没用过虚拟主机东西。不过路径什么的,我觉得很奇怪。所说的路径依赖严重又是什么意思
ouyang532 2008-06-22
  • 打赏
  • 举报
回复
呵呵,林子大了,什么鸟都有.
没事看热闹.
jiangpinhe 2008-06-22
  • 打赏
  • 举报
回复
就单凭路径这一点否定asp.net也太简单粗暴了把,我狂晕,人家微软也该倒闭了
feng5799 2008-06-22
  • 打赏
  • 举报
回复
你完全可以在各个目录下新建webconfig啊,页面取配置参数的时候是取离该页面最近的那个webconfig的...如果最近的没有要取的参数,再往上推,最后才到根目录下的..2003的不是很了解,但是vs2005是这样的
vrhero 2008-06-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 winner2050 的回复:]
我觉得是楼主大脑对路径依赖太严重了.
[/Quote]
xuStanly 2008-06-22
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 owen1759 的回复:]
你这话我完全无法理解,在ASP.NET下,重名是必然的、无可避免的OK?你居然说不会碰到重名?ASP.NET规定死了必须放在根目录、又规定死了文件名,难道你不知道同一个文件夹下不可能放两个文件名完全相同的文件么?这是百分之百的重名,要么第二个覆盖第一个让第一个不能用,要么不覆盖那么第二个就不能用
[/Quote]

楼主可以考虑将两个web.config的内容合并。
两个web.config中的内容如果是比较有名的应用程序一般都会考虑重名问题。
应该是可以合并的。
woshilaisongfende 2008-06-21
  • 打赏
  • 举报
回复
楼主你真tm搞笑
sb,鉴定完毕
yoofaithy 2008-06-21
  • 打赏
  • 举报
回复
搂主的意思是不是一个虚拟目录只能有一个web.config,且在一个web.config中只能有一个主页路径,使得当无法新建虚拟目录时,就不能挂多个app了?
owen1759 2008-06-21
  • 打赏
  • 举报
回复
你这话我完全无法理解,在ASP.NET下,重名是必然的、无可避免的OK?你居然说不会碰到重名?ASP.NET规定死了必须放在根目录、又规定死了文件名,难道你不知道同一个文件夹下不可能放两个文件名完全相同的文件么?这是百分之百的重名,要么第二个覆盖第一个让第一个不能用,要么不覆盖那么第二个就不能用
54sh 2008-06-02
  • 打赏
  • 举报
回复

如果你们是自己开发的话,就应该避免重名的行为。这是你们可以控制的。

如果用第三方的,其实你注意看看 基本上名字都是有区分的,不会有重复的,特别是比较教有名的。

如果碰到了 重名 ,发封邮件去提醒他们一下,然后换一套程序,这点小问题都没考虑到,别的地方只怕也会有问题。

虚拟主机是这样的,至少 我两三年没碰到. webconfig 数据库 项目名 全都要考虑重名的问题。现在公司买了个服务器,想怎么配置就怎么配置,不过现在考虑的问题就是服务安全的问题了。

虚拟主机管理员不会帮你做什么的,都要自己想办法。抱怨一下,消消火,然后继续思考如何去解决,问题终究是需要你 自己去解决的。
owen1759 2008-06-01
  • 打赏
  • 举报
回复
如果你认为可以放多个的话,希望你能把12楼的假设给出一个解决的方法,谢谢
54sh 2008-05-30
  • 打赏
  • 举报
回复

web.config怎么没冲突呢?整个站点就只能有一个web.config,你将就了这个就将就不了那个,将就了那个就将就不了这个。也就是说一个虚拟主机下只能放一套程序,而且必须把它放在根目录。

这就是你的问题了,谁说配置文件就必须在 web.config里了,你一样可以写在别的文件里,何必那么死板。

都能建立虚拟目录的话,我把你想要的虚拟目录抢先建立了,请问你怎么办。

以前公司也是用的虚拟空间,一样放多个程序,只是规定好了,名称要区分开来,当时还不是用的一个 web.config。

不同情况下,不同的处理方式,只能说你太死板了吧。
54sh 2008-05-30
  • 打赏
  • 举报
回复

晕,你看错了吧 我的意思是可以放多个的

如果你下的 bbs 和 cms 数据库连接字符串的名称是一样的 怎么办,你就在这说路径依赖太严重?对问题的解决没任何办法。

只能说 你没明白原理,知道原理后,才能进行修改。程序是死的,人是活的啊。
owen1759 2008-05-30
  • 打赏
  • 举报
回复
我要说的就是楼上这位说的——一个虚拟主机只能放一套程序,而且必须把它放在根目录——这就是我说的“对路径地依赖太严重”的意思。
是的,对于我自己编写的程序我可以不放在web.config里,但是关键是并非任何时候都是自己写的程序啊,比如一个BBS和一个CMS,都是下载的现成程序,它们就是这么做的,它们写在了web.config里啊。如果在asp下,可以把任意多套程序放在任意路径,但是Asp.Net只能放一套程序,并且连路径都规定死了只能在根目录。
owen1759 2008-05-27
  • 打赏
  • 举报
回复
但是现实情况是禁用FSO的虚拟主机基本上找不到,但是基本上档次低一点的虚拟主机全都禁止建立虚拟目录
况且FSO又不是asp的属性,它只是一个组件,Asp.Net一样可以用它
我没说没想过Asp.Net的强大功能撒,Asp.Net的功能确实强大得很。
但是我现在不是做测评,不是整体比较它们哪个好,而是说其中一方面,我只是在说对路径的硬性规定的这一方面。
lang83206569 2008-05-27
  • 打赏
  • 举报
回复
不熟
加载更多回复(12)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧