我的程序集显然已将服务器凭据硬编码到DLL中。那些凭据后来发生了变化。我的程序集列为:
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="XYZ.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96AD35993B90AC04"/>
<add assembly="XYZ.DAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=F38AD7B1AAE72AF0"/>
<add assembly="XYZ.Universal, Version=1.0.0.0, Culture=neutral, PublicKeyToken=F38AD7B1AAE72AF0"/>
<add assembly="XYZ.Security, Version=1.0.0.0, Culture=neutral, PublicKeyToken=F38AD7B1AAE72AF0"/>
<add assembly="XYZ.Roles, Version=1.0.0.0, Culture=neutral, PublicKeyToken=F38AD7B1AAE72AF0"/>
<add assembly="XYZ.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9BA321F98F0715B4"/>
</assemblies>
我的C驱动器上有几个XYZ.DAL副本,因为它在各种项目中使用。我如何准确知道我的项目正在使用哪个DDL文件,以便我可以爆炸该DLL并查看服务器凭据发生了什么?我会假设它会在项目BIN文件中查找,但它是空的。我假设它正在使用DLL上的一个副本,但是哪一个?
这是完整的堆栈跟踪:
[Exception: Unable to Open Connection
服务器= XXXSQLDEV;数据库= XXXX.NET; UID = XXXAdmin; PWD = XXX 用户&#39; EIISAdmin&#39 ;.登录失败。 ITT.DAL.SQLHelpers.MSSQLHelper.StartExecuteReader(CommandType cmdType,String cmdText,DbParameter [] cmdParams)+951 ITT.DAL.Universal.PersonDAL.Get(String lanname)+210 C:\ Users \ eric.dahlenburg \ Documents \ Visual Studio 2010 \ Projects \ Property.NET \ Updates \ Default.aspx.cs中的PropertyUploader._Default.Page_Load(Object sender,EventArgs e):25 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e)+99 System.Web.UI.Control.LoadRecursive()+50 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+627
根据堆栈跟踪,我应该过滤什么?
谢谢,
埃里克
答案 0 :(得分:0)
GAC包含系统上所有可用的DLL。引用DLL时,如果在GAC中找不到DLL,它将首先检查GAC,然后检查当前的BIN文件夹。
答案 1 :(得分:0)
在.Net中,您将看到按以下顺序从以下位置加载的程序集:
可以找到更多信息here。