最近公司的系统的编译环境要从vs2003升级到vs2005.
升就升吧~可是奇怪的事情发生了:
当用我机子上的vs2005调式网页时,打开的IE竟然出现了“试图运行不存在的令牌”;
点击“确定后”,又出现了“windows无法访问指定设备、路径或文件。你可能没有合适的权限访问这个项目”。
但是,当我直接打开IE输入该页面的地址时竟然运行正常!
这回可是撞鬼了.......
开始的时候以为是IIS的问题(因为提示中说没有权限),于是查看IIS上虚拟目录的属性-》目录安全性-》身份验证方法中的“集成windows身份验证”,选上后问题依然。
(天啊~~~)
然后又想:“竟然是在vs2005调试的时候出现的问题,应该是vs的问题了”。
然后立马查看vs相关的调试设置,也没有着方面(权限)相关的设置。
接着发现自己的vs多了个“产品”(忘记叫什么了,没记下来),卸载了,还是出现错误。
上网查资料,在“windows帮助和支持”找到一个说是“模拟 ASP.NET 无法启动 Csc.exe 编译器。 当调用 LogonUser 来创建模拟令牌, 令牌的 ACL 不授予对调用者的进程身份访问并且收到以下错误信息: 编译器错误信息: CS0007: 意外公共语言运行库初始化错误 -- 试图引用一个令牌不存在一个 '。 ': [ 没有相关的源行 ] 源错误”
但是竟然没有提供解决方法(靠~~~)。没办法,只好重装vs了......
不用说了,问题依久。
(彻底崩溃了~~~)
心灰意冷一段时间后,开始看该网页的代码(瞧瞧是不是自己写错了)。
竟然被我发现在没有调用window.open函数时不会出现错误!
但找遍了资料,也没有说window.open会产生这样的错误的......
以下是该网页的内容:(很简单,就是个空白页然后调用window.open函数)
<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
%>
<
html
>
<
head
runat
="server"
>
<
title
>
无标题页
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
table
>
<
tr
>
<
td
width
="25%"
>
test
</
td
>
<
td
width
="25%"
>
test
</
td
>
<
td
width
="50%"
>
<
input
id
="Button1"
type
="button"
value
="button"
onclick
="return window.open('about:blank','_blank','width=50,height=50,status=no,resizable=yes');"
/></
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
然后上CSDN求救......
无果.......
又是心灰意冷~~~
想来想去,应该都是自己的vs的问题,或是机子的问题。
升级vs.......
调试.....
升级.net framework........
调试.....
.......
.......
突然想起,自己升级过IE6,而且机子好像存在有两个iexplorer.exe(一个在c盘,一个在d盘)。
好奇心,想看看调试时候的ie,和直接打开的ie有什么不同,终于被我发现果然运行的是两个不同的ie。
终于有头绪了~很有可能就是ie不同导致的问题。
然后查看这两个的属性~竟然发现一个是IE6,一个是IE7,而调试时候运行的是IE6。
在vs的默认浏览器设置中竟然是IE6,手工添加上IE7,并设置为默认,调试运行,没有出现错误!
yet~~~~~~
终于找到问题所在了。(55555555~~~~~)
原来,我的vs2005是在升级IE7时装的,升级后vs竟然没有把默认浏览器换过来,而且系统竟然也还保存着IE6。
唉~晕死了......