[英]ASP.NET 4 App dll is shadow copied but bin dll is loaded instead
在大型asp.net 4應用程序中存在一個非常奇怪的問題。 IIS有時不是從卷影副本位置加載模塊,而是從dll最初來自的bin目錄加載。
有誰知道IIS模塊加載的工作方式,這是正常現象還是錯誤?
這是導致我們的問題
筆記
幾周前發現了此問題的根本原因,希望現在發布以幫助遭受類似問題的任何人。
在我們的一些開發人員經過一番努力之后,我們發現這是由於我們在掃描dll進行nhibernate配置時所造成的。
當我們從代碼中顯式加載dll時,我們濫用了Assembly
helper方法。 而不是使用Assembly.LoadFrom(assemblyPath)
而是使用Assembly.LoadFile(assemblyPath)
。 這些方法之間存在許多差異,此處相關的是LoadFile()
加載指定的文件,而LoadFrom()
將應用邏輯以從其他位置(如temp,cache或GAC LoadFrom()
查找程序集。 有關差異的更多詳細信息,請參見此問題 。
無論如何,在更改了這一行代碼之后,我們所有的問題都消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.