kha*_*rPK 77 asp.net .net-assembly
我找到了大量有关此错误的信息:'错误:无法加载文件或程序集'*.dll'或其中一个依赖项.访问被拒绝.' 但我没有找到特定于我的情景的答案.我的站点部署在6个不同的生产服务器上,只在一台服务器上我正面临这个问题.问题是随机的,但是在它发生一次之后,它会一直持续到网站重新编译为web.config文件中的一个小修改(我知道技巧,在web.config中重新编译后重新编译Web应用程序)和该服务器上的站点启动工作.昨天,问题在一个月的工作期后再现.我们无法承担这个生产问题.
问题详情:
'/'应用程序中的服务器错误. ____________________________________ 无法加载文件或程序集"MainCore.DbImpl,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.访问被拒绝.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"MainCore.DbImpl,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.访问被拒绝.
源错误:在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
程序集加载跟踪:以下信息有助于确定无法加载程序集"MainCore.DbImpl,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null"的原因.
警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].
堆栈跟踪:
[FileLoadException:无法加载文件或程序集'MainCore.DbImpl,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.访问被拒绝.] ... DbImpl.Event.TTCEventController.GetEventFields(Int32 eventId)+0 WebSuite.SportChannel.ModelImpl.TTCModelController.AddEventFieldList(XmlElement eventNode,ITTCEventController ctrl,Int32 eventId,PlayerType stupidType)in ... root\SportChannel\ModelImpl\Ttc\TTCModelController.cs:171 ... ModelImpl.TTCModelController.GetLatestFourTourSchedulesXml()in ... root\SportChannel\ModelImpl\Ttc\TTCModelController.cs:283 ... WebRoot.UserControls.HeadlinesTab.Page_Load(Object sender ,EventArgs e)+491 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+25 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+42 System. EventHandler.Invoke(Object sender,EventArgs e)+0 System.Web.UI.Control.OnLoad(EventArgs e)+132 System.Web.UI.Control.LoadRecursive()+66 System.Web.UI.Control.LoadRecursive( )+191 System.Web.UI.Control.LoadRecursive()+191 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeA syncPoint,Boolean includeStagesAfterAsyncPoint)+2428
____________________________________版本信息:Microsoft .NET Framework版本:2.0.50727.5446; ASP.NET版本:2.0.50727.5420
pro*_*dad 47
对于我的场景,我发现web.config文件中有一个标识节点.
<identity impersonate="true" userName="blah" password="blah">
当我从节点中删除userName和password参数时,它开始工作.
另一个选项可能是您需要确保指定的userName有权使用各种C:\ Windows\Microsoft.NET\Framework {version}文件夹中的"Temporary ASP.NET Files"文件夹.
希望这有助于其他人!
kha*_*rPK 24
我的解决方案如下:
我没找到根文件夹C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
.
谷歌告诉我,它可能是针对当前用户的权限问题,然后我发现我有一个当前的身份:IIS APPPOOL
在故障服务器中服务器的其余部分具有当前身份:NT AUTHORITY\NETWORK SERVICE
.
然后我将Current Identity IIS APPPOOL
改为NT AUTHORITY\NETWORK SERVICE
.
从这里开始,我发现重置Web应用程序会重建临时ASP.NET缓存,从而解决问题.
Yor*_*rro 21
对于那些尝试过大多数解决方案但仍有问题的人.
我的解决方案不同于其他位置,位于此帖的底部,但在您尝试之前请确保您已经用尽了以下列表.可以肯定的是,我已经尝试了所有这些,但无济于事.
从头开始重新编译和重新部署,不要更新现有应用程序.所以答案
授予IIS_IUSRS对"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files"目录的完全访问权限
请记住您正在使用的框架版本.如果您的应用使用模拟,请使用该标识而不是IIS_IUSRS
删除目录"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files"的所有内容.
请记住您正在使用的框架版本
更改您的应用正在使用的AppPool的标识,从ApplicatonPoolIdentity更改为NetworkService.
IIS>应用程序池>选择当前应用程序池>高级设置>标识.
所以答案(如果不起作用,请恢复默认值)
验证IIS版本和AppPool .NET版本与您的应用程序的兼容性.非常适用于首次部署.所以答案
验证模拟配置(如果适用).所以答案
我的解决方案
我发现某些防病毒软件正在主动阻止"Temporary ASP.NET Files"目录中的DLL编译,我的是McAfee,IT人员没有通知我安装.
根据McAfee专家和Microsoft的建议,您需要在实时扫描中排除目录"Temporary ASP.NET Files".
资料来源:
不要禁用反病毒,因为它只是在执行其工作.不要手动复制目录\ Temporary ASP.NET Files {project name}中缺少的DLL文件,因为那是管道编带.
如果使用模拟,请确保对以下文件夹上的相关用户帐户授予权限,包括写入和修改权限:
C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files
Run Code Online (Sandbox Code Playgroud)
我缺少修改权限,这就是为什么仅添加默认权限对我不起作用的原因。
归档时间: |
|
查看次数: |
188814 次 |
最近记录: |