公司有个项目用了微软的一些新技术,比如WCF, WF, Silverlight和 .Net3.5, 可怕的是当我们转移到Vista上做开发的时候好像什么都变得很困难,很复杂一样。倒不是说写代码复杂了,Vista下的很多安全体系让我一开始摸不着头脑,莫名其妙的错误也让人摸不着头绪,特别是讨厌的UAC(当然,这是个好东东哦),咳。。。。这里把自己遇到的问题总结一下,希望大家能用到:)
首先出现的问题是VS.NET 2008无法打开Microsoft ASP.NET Web Application类型的项目,这个问题很奇怪,我的Vistual Studio是可以创建新的Web Application的但是却无法打开解决方案中已有的web application. 报告的错误当然是经典的"The Project Type is not supported by this installation". 赶紧看了一下安装,C#的支持等等都安装了,很是郁闷。忽然想着,既然是Web Application是不是需要IIS呢,检查了一下,没有问题,IISManager运行良好。但同事的在XP操作系统上就运行的很好,想起来是不是没装IIS6的缘故呢? 赶紧Turn On了IIS6.0的所有选项,重新启动机器,居然没有反应。。。。Google了一下也没发现什么好的解决办法。这个问题到现在仍然没有解决,但却通过别的愚蠢的办法加进来了:在解决方案中创建一个新的Web Application,然后把所有以前的文件拷进新的目录并包含到新项目中(不要替换.csproj文件),就绪后用个Compare File的类似工具(比如winmerge)比较一下新的和旧的 .csproj文件,吧以前的一些安全设置,引用,Include/excluded等等都加到新的项目里边,再打开就没有问题了。
哪位高人知道如何解决这个问题请指教。
再接下来就是加载不了Silverlight项目了,除了安装RunTime外还需要安装SDK,否则无法再项目中加载一些Silverlight的东西。接下来编译项目,启动Service Hosting,一切ok,欣喜的去尝试运行Web项目来调试。不好,报错,错误信息很模糊,说什么与这个加载项相关的配置不能被加载。。。分析了以下可能是安全问题,把当前用户设置了Full Control给项目文件,居然没用 。因为UAC的问题吧估计是,所以重新运行了VisualStudio以Administrator身份运行,错误解决。看来即使 将当前用户对文件的访问权限设为全部控制也不如以Administrator来得方便啊。
调试WCF的时候有时候会报告错误,提示”HTTP could not register URL http://+:8001/. Your process does not have access rights to this namespace “,遇到这样的问题鉴于上边的问题很容易想到是权限的问题,但是哪儿的问题又不好说。微软的KB有介绍,说是需要配置安全证书或者 SSL之类的什么导致的问题,想着没这么复杂,抛弃了。给IIS里的root加了NetworkService用户可以访问的权限也没有什么用处,意外发现在Event Viewer里有错误信息:Security-Licensing-SLC
Acquisition of End User License failed. hr=0xC004C008
Sku Id=30fab9cc-8614-4339-989f-7ce61fb7a5c4
忽然想起来好像和License有关,而自己的Vista又没有激活,赶紧打电话激活,输入激活码,一切ok.唉,破Vista,又爱又很啊。据说如果不激活vista会保留一部分功能不让使用。郁闷的。。。。
WCF和WF的后台服务程序没有问题了,前台可以运行了吧?没来得及高兴,View了一下主页居然有错。汗。。。。
又头大的不成,看来没什么太大思路。。。
Google吧,呵呵,找到解决方案,给运行的程序目录将”IIS_IUSRS"用户添加进访问组就成。造成的问题据说是“现这个错误是因为IIS 7 采用了更安全的Web.Config管理机制,默认情况下会锁住配置项不允许更改”,看来以后还是必须在装 .net之前先安装IIS7了:)
终于可以进入程序了。。。。不容易啊。
首先出现的问题是VS.NET 2008无法打开Microsoft ASP.NET Web Application类型的项目,这个问题很奇怪,我的Vistual Studio是可以创建新的Web Application的但是却无法打开解决方案中已有的web application. 报告的错误当然是经典的"The Project Type is not supported by this installation". 赶紧看了一下安装,C#的支持等等都安装了,很是郁闷。忽然想着,既然是Web Application是不是需要IIS呢,检查了一下,没有问题,IISManager运行良好。但同事的在XP操作系统上就运行的很好,想起来是不是没装IIS6的缘故呢? 赶紧Turn On了IIS6.0的所有选项,重新启动机器,居然没有反应。。。。Google了一下也没发现什么好的解决办法。这个问题到现在仍然没有解决,但却通过别的愚蠢的办法加进来了:在解决方案中创建一个新的Web Application,然后把所有以前的文件拷进新的目录并包含到新项目中(不要替换.csproj文件),就绪后用个Compare File的类似工具(比如winmerge)比较一下新的和旧的 .csproj文件,吧以前的一些安全设置,引用,Include/excluded等等都加到新的项目里边,再打开就没有问题了。
哪位高人知道如何解决这个问题请指教。
再接下来就是加载不了Silverlight项目了,除了安装RunTime外还需要安装SDK,否则无法再项目中加载一些Silverlight的东西。接下来编译项目,启动Service Hosting,一切ok,欣喜的去尝试运行Web项目来调试。不好,报错,错误信息很模糊,说什么与这个加载项相关的配置不能被加载。。。分析了以下可能是安全问题,把当前用户设置了Full Control给项目文件,居然没用 。因为UAC的问题吧估计是,所以重新运行了VisualStudio以Administrator身份运行,错误解决。看来即使 将当前用户对文件的访问权限设为全部控制也不如以Administrator来得方便啊。
调试WCF的时候有时候会报告错误,提示”HTTP could not register URL http://+:8001/. Your process does not have access rights to this namespace “,遇到这样的问题鉴于上边的问题很容易想到是权限的问题,但是哪儿的问题又不好说。微软的KB有介绍,说是需要配置安全证书或者 SSL之类的什么导致的问题,想着没这么复杂,抛弃了。给IIS里的root加了NetworkService用户可以访问的权限也没有什么用处,意外发现在Event Viewer里有错误信息:Security-Licensing-SLC
Acquisition of End User License failed. hr=0xC004C008
Sku Id=30fab9cc-8614-4339-989f-7ce61fb7a5c4
忽然想起来好像和License有关,而自己的Vista又没有激活,赶紧打电话激活,输入激活码,一切ok.唉,破Vista,又爱又很啊。据说如果不激活vista会保留一部分功能不让使用。郁闷的。。。。
WCF和WF的后台服务程序没有问题了,前台可以运行了吧?没来得及高兴,View了一下主页居然有错。汗。。。。
HTTP Error 500.19 - Internal Server Error
又头大的不成,看来没什么太大思路。。。
Google吧,呵呵,找到解决方案,给运行的程序目录将”IIS_IUSRS"用户添加进访问组就成。造成的问题据说是“现这个错误是因为IIS 7 采用了更安全的Web.Config管理机制,默认情况下会锁住配置项不允许更改”,看来以后还是必须在装 .net之前先安装IIS7了:)
终于可以进入程序了。。。。不容易啊。