无法加载文件或程序集''或其某个依赖项。API调用异常退出

25

我有一个.NET应用程序,最近将其签入了团队基础架构服务器。自从签入之后,我无法访问应用程序文件夹。然后我给模拟用户授予安全权限,但遇到以下错误:

无法加载文件或程序集“PMD Image Upload”或其某个依赖项。API 调用异常结束。 (来自 HRESULT:0x800300FA (STG_E_ABNORMALAPIEXIT))


.NET解决方案的名称。 - Bruno
你检查过所有引用是否有效吗?有时从源代码控制中拉取项目时会丢失引用。 - James Johnson
当我关闭了web.config文件上的模拟操作时,引用显示访问被拒绝,现在它可以工作了。 - Bruno
我认为我们谈论的不是同一件事。当您在项目中展开“引用”文件夹时,是否有任何无效的引用? - James Johnson
没有显示为无效。我们可能在谈论不同的事情。不过现在它已经工作了。谢谢。 - Bruno
5个回答

34

在调试机器上,启用了一个没有特权的用户的Web.config模拟。 注释掉模拟,就能够调试.NET应用程序。


如果被模拟的用户不在您的本地网络上怎么办?例如,我正在查看另一家公司的一些旧遗留代码。 - J86

15

我知道这个问题比较老,但是如果您需要在Web服务器上冒充用户,您还需要授予被冒充用户创建/修改Windows\Microsoft.NET\"所用框架版本"文件夹中的"Temporary ASP.NET Files"的权限。


1
在我的Win 2008 R2服务器上,它的路径是:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files(而不是Framework64路径)- 因人而异。 - bkwdesign
1
我还需要在我的本地 %TEMP% 文件夹下为模拟用户添加完全权限。 - solidau
在我的情况下,也是上述权限问题。我的错误信息(以防万一有人搜索)是“**System.IO.FileLoadException: Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. An API call exited abnormally. (Exception from HRESULT: 0x800300FA (STG_E_ABNORMALAPIEXIT))**”。我没有使用IIS模拟,而是使用了我的自己的模拟类 - Uwe Keim

8

模拟用户应该被授予解决方案文件以及解决方案的临时 asp.net 文件的权限,通常位于以下目录:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

"Framework" 可能是 "Framework64",而 "v4.0.30319" 可能是其他 .Net 版本号。


0

Bruno是正确的。禁用模拟也对我有用。如果您的webconfig中没有模拟,并且仍然遇到问题。如果您正在运行IIS 7.5,请检查您的应用程序池。有时它可以设置为模拟。

在[高级设置>进程模型>标识]下查看

您需要将其设置为[ApplicationPoolIdentity]。


-1
<div id="divWindowMain">
   <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
       <Services></Services>
   </asp:ScriptManagerProxy>
</div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接