我已经在 8 台服务器上运行了此代码。现在我正在启动接下来的 4 台。
我已在所有 4 台服务器上重现了此问题。
首先,我得到:
System.InvalidOperationException:未找到视图“Index”或其主视图,或者没有视图引擎支持搜索的位置。
它列出了 index.cshtml 的正确位置
然后我在 IIS 中回收该网站。从那时起,我得到的只是:
无法加载文件或程序集“Microsoft.CSharp,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。未提供所需的模拟级别,或提供的模拟级别无效。(来自 HRESULT 的异常:0x80070542)
我已经在所有 4 台新服务器上重现了此序列。
第四,我没有从IIS中恢复,但是编辑了web.config,结果还是失败。
我检查过所有 IIS 设置,它们看起来都一样。
所有 wwwroot 文件夹权限在正常工作的服务器和不正常工作的服务器上看起来都一样。
我使用的是自定义应用程序池,它在两组服务器上看起来都一样。
Procmon
说它正在尝试以 身份访问 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\CSharp.dll 并NT AUTHORITY\IUSR
获取BAD IMPERSONATION
。
我犹豫是否要procmon
在生产服务器上安装,因此无法比较那里的结果。但我可以看到NT AUTHORITY\IUSR
在正在运行的服务器上无法有效访问该文件。
答案1
尽管我模仿在工作服务器上将其设置为 true,设置为 false 则允许新服务器开始工作。
<system.web>
<identity impersonate="false" />
<compilation targetFramework="4.5" />