VS不能加载web项目的解决方法
不能加载web项目是在部署asp.net web项目时遇到的问题之一,今天我把我所知道的东西来做个总结。
错误表现及解决方法:
1.不能从指定的Url加载web项目
详细描述:
我们在新建一个web项目时,需要指定的是虚拟路径(url)路径而不是物理路径,vs读取项目文件的时候也是从新建时指定的那个虚拟路径找,而不是从计算机的物理路径找。一般来说,虚拟路径和物理路径的对应关系为:
localhost/myApp/index.aspx
E;\aspx\myApp\index.aspx
这个路径信息是存储在项目文件中的,当用vs打开某个asp.net项目时,vs会自动从项目文件中查找该路径信息,然后加载。
所以,当我们把一个asp.net项目放在别的机器上时,目标机器上的vs也会照上面的办法去找项目文件中的路径信息(原因很简单:大家都在用微软出的 vs,这个解释是不是很白痴啊),结果一般就是找不到(也有恰好有这个路径,而这个路径下恰好有一个项目,那就把这个项目加载了)。
解决办法:
看完了上面的描述,大家可能都知道该怎么解决这个问题了,没错,办法就是在目标计算机建一个和开发计算机上一样的虚拟目录,然后把web项目复制到这下面,问题就解决了。
上面是最简单的办法,但如果出于不可抗力(经销商们常用这个词,呵呵)而不能建一个一样的虚拟目录,那就只好建一个其他名字的虚拟目录,然后修改项目文件中的路径信息。修改的方法如下:
这个是我从sf2的安装说明中复制过来的,大家一看就明白。
1.用记事本打开Stella2\web.csproj.webinfo, 把里面的虚拟目录路径换成你自己的
2.用记事本打开Stella2\Stella2.sln,里面有这么一节
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "web", "http://localhost/stella2/web.csproj", "{C9F63555-3315-480E-8E9F-9E3AD695CB98}"
把这里的虚拟路径改成你自己的
(如果您不是开玩笑似的在你的项目文件中找stella2这个词,那就没问题了)
2.不能从web服务器加载项目所需的资源文件
详细描述:
这个问题偶有发生,很幸运的,我碰上了一次,大体就是路径信息完全没有问题,但是却发生错误,提示说不能从web服务器加载项目所需的资源文件,可是看看计算机上相应的文件又确实存在。
这个问题的发生是因为我们在用vs建立项目时会在我的文档中建一个相应名字的文件夹,里面会保存一些项目信息,这个的一般的位置是:
C:\Documents and Settings\用户名\VSWebCache\计算机名\...
由于某些我不知道的原因(汗……请高手指教),这个会出错,然后在加载项目文件的时候就会发生上面的错误。
其实我们看里面是只有一个*.csproj.user,里面包存基本的设置信息,我猜可能是这里的设定出了问题。
解决办法:
我现在只会一种很简单的办法:把相应的文件夹删掉,然后世界和平了....
我想,或许更改*.csproj.user里的某些设置也可以达到和平的目的,但由于上次我出错的时候直接就删掉了,而后来也再没有碰到类似的情况,所以也就没有办法来求证了。再次呼唤高人解答。
错误表现及解决方法:
1.不能从指定的Url加载web项目
详细描述:
我们在新建一个web项目时,需要指定的是虚拟路径(url)路径而不是物理路径,vs读取项目文件的时候也是从新建时指定的那个虚拟路径找,而不是从计算机的物理路径找。一般来说,虚拟路径和物理路径的对应关系为:
localhost/myApp/index.aspx
E;\aspx\myApp\index.aspx
这个路径信息是存储在项目文件中的,当用vs打开某个asp.net项目时,vs会自动从项目文件中查找该路径信息,然后加载。
所以,当我们把一个asp.net项目放在别的机器上时,目标机器上的vs也会照上面的办法去找项目文件中的路径信息(原因很简单:大家都在用微软出的 vs,这个解释是不是很白痴啊),结果一般就是找不到(也有恰好有这个路径,而这个路径下恰好有一个项目,那就把这个项目加载了)。
解决办法:
看完了上面的描述,大家可能都知道该怎么解决这个问题了,没错,办法就是在目标计算机建一个和开发计算机上一样的虚拟目录,然后把web项目复制到这下面,问题就解决了。
上面是最简单的办法,但如果出于不可抗力(经销商们常用这个词,呵呵)而不能建一个一样的虚拟目录,那就只好建一个其他名字的虚拟目录,然后修改项目文件中的路径信息。修改的方法如下:
这个是我从sf2的安装说明中复制过来的,大家一看就明白。
1.用记事本打开Stella2\web.csproj.webinfo, 把里面的虚拟目录路径换成你自己的
2.用记事本打开Stella2\Stella2.sln,里面有这么一节
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "web", "http://localhost/stella2/web.csproj", "{C9F63555-3315-480E-8E9F-9E3AD695CB98}"
把这里的虚拟路径改成你自己的
(如果您不是开玩笑似的在你的项目文件中找stella2这个词,那就没问题了)
2.不能从web服务器加载项目所需的资源文件
详细描述:
这个问题偶有发生,很幸运的,我碰上了一次,大体就是路径信息完全没有问题,但是却发生错误,提示说不能从web服务器加载项目所需的资源文件,可是看看计算机上相应的文件又确实存在。
这个问题的发生是因为我们在用vs建立项目时会在我的文档中建一个相应名字的文件夹,里面会保存一些项目信息,这个的一般的位置是:
C:\Documents and Settings\用户名\VSWebCache\计算机名\...
由于某些我不知道的原因(汗……请高手指教),这个会出错,然后在加载项目文件的时候就会发生上面的错误。
其实我们看里面是只有一个*.csproj.user,里面包存基本的设置信息,我猜可能是这里的设定出了问题。
解决办法:
我现在只会一种很简单的办法:把相应的文件夹删掉,然后世界和平了....
我想,或许更改*.csproj.user里的某些设置也可以达到和平的目的,但由于上次我出错的时候直接就删掉了,而后来也再没有碰到类似的情况,所以也就没有办法来求证了。再次呼唤高人解答。