有时候编译asp.net会遇到奇怪的错误:
生成 (web): 未能加载文件或程序集“Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。未提供所需的模拟级别,或提供的模拟级别无效。 (异常来自 HRESULT:0x80070542)
这个报错对应的英文是:Either a required impersonation level was not provided, or the provided impersonation level is invalid.
相关的错误编号是:ERROR_BAD_IMPERSONATION_LEVEL
你的web.config里面如果配置了impersonate,那么会很容易遇到这个问题。
解决办法有三个:
1、用管理员权限执行visual studio,这个最粗暴有效,就是每次都要用管理员权限打开vs有点麻烦。
2、去掉web.config里面的impersonate
3、给impersonate的用户加上足够大的权限,这个权限加起来有点麻烦,因为这个用户需要能够操作GAC。不一定能加上足够的权限。
我试过方法1和方法2,都好用。