最近在研究以dottext为原型的中文blog系统cnblogsdottext。之前用vs.net打开cnblogsdottext的项目文件cnblogsdottext.sln(或dottextweb.csproj),总是提示说“visual studio .net 无法创建或打开应用程序 。问题很可能是因为本地 web 服务器上没有安装所需的组件。请运行visual studio .net安装程序并添加web开发组件”。图片如下:
用google搜索,找到mill的个人blog上有一篇文章给出了比较正规的解决办法,地址是:http://www.cnblogs.com/mill2002/archive/2004/09/26/46814.html。为了方便读者,在这里给出全文:
为 web 开发重新配置计算机
注意 以下所有步骤都是在 web 服务器计算机上发生的。
1. 确认已安装 iis。方法之一是打开“控制面板”,然后选择“internet 服务管理器”。如果已安装 iis,您将能够使用此实用工具停止和启动它。
如果未安装 iis,则在 windows“控制面板”上,选择“添加或删除程序”,然后选择“添加/删除 windows 组件”。在列表中,选择“internet 信息服务 (iis)”并继续安装。有关详细信息,请参见 windows 帮助。
安全说明 在安装 iis 时,强烈建议您确保 web 服务器计算机的安全。有关详细信息,请参见属于安装文档的文件 webserver.htm。该文件在安装 cd 上的位置为 disk1\setup\webserver.htm。安装 visual studio 后,在硬盘的 %install%\csetupmm\webserver.htm 处也可找到该文件。
2. 安装或重新安装 .net framework。运行 visual studio.net 安装并选择选项 1“windows 组件更新”。
注意 如果您确定在 web 服务器计算机上安装了 .net framework 的当前版本,则可以跳过此步骤。
3. 打开 windows 的“运行”窗口,然后键入以下内容以启用 asp.net:
aspnet_regiis.exe /i
提示 您可以从命令的正确目录中直接打开该命令窗口。从 windows 的“开始”菜单,指向“程序”、“visual studio .net 2003”、“visual studio .net 工具”,然后选择“visual studio .net 命令提示”。在窗口打开后,键入 aspnet_regiis /i。
4. 安装 visual studio .net 服务器组件。
a.再次运行 visual studio .net 安装,并选择选项 2“visual studio .net”。
提示 可以从“控制面板”运行该安装,方法是:选择“添加或删除程序”,选择“microsoft visual studio .net”(具体名称会根据所安装的版本和语言而稍有不同),然后单击“更改/删除”。
b.选择“添加或删除功能”。
c.打开“服务器组件”节点并选中“web 开发”。
d.单击“立即更新!”
5. 对 iis 执行安全锁定,但随后启用 asp.net。
如果您使用的是在 windows 2000 或 windows xp 上运行的 iis 5.0,可以使用 iis 锁定工具(版本 2.1)。
在 windows server 2003 中,您可以在 iis 管理器中设置应用程序的安全级别。有关使用 iis 管理器和取消 asp.net 应用程序锁定的详细信息,请参见主题 visual studio .net 检测到 iis 中的 asp.net 应用程序和服务已经锁定。
按照上文的提示,重装iis和.net framework,结果依旧。后来又仔细对照了dudu在cnblogsdottext的安装说明中的步骤,在iis服务管理器中n进n出,建虚拟目录,删映射,添加映射,仍然搞不定。最后抱着死马当活马医的心态,用最苯的暴力手段,即用记事本(如果是二进制格式的文件,就ultraedit软件)强行打开cnblogsdottext.sln文件,结果在头3行看到如下的字符串:
microsoft visual studio solution file, format version 8.00
project("{fae04ec0-301f-11d3-bf4b-00c04f79efbc}") = "dottextweb", "http://localhost/dottextweb/dottextweb.csproj", "{d5711ab8-be34-4d64-91a2-b68f310ca995}"
顿时眼睛一亮,之前的郁闷一扫而光。原来在调试时,我在本机iis服务管理器为cnblogsdottext项目建立的虚拟目录的别名是“cnblog”,而vs.net在加载cnblogsdottext.sln文件时找的是dottextweb虚拟目录,这样当然找不到了,结果vs.net报了个误人千里的出错提示。原因找到后,手工修改上面的第二行,保存退出。再用vs.net打开cnblogsdottext.sln文件,结果一切顺利,整个项目的文件都老老实实的列在了右边的“解决方案资源管理器”中。
我在网上下过不少公布的web项目代码包,里面大都没有注释如何用ide编辑器调试。当然,作者在使用ide编辑器调试自己写的代码时,ide编辑器是肯定不会报错的。但是编辑完保存后打包发布后,其它人在自己机器上调试时起了和作者不一样的项目名称时,往往就会出现各种莫名奇妙的出错提示。所以,我们在拿到他人发布的程序代码后,最好先用记事本打开其项目配置文件看看,当然,二进制格式的就用ultraedit了。
最后,又去mill的个人blog逛了逛,结果发现不久前他也发了篇相当简短的英文日志,正好也是解决vs.net的类似问题的,觉得我太罗嗦的可以去看看。地址是:http://www.cnblogs.com/mill2002/archive/2005/01/04/86300.html