什麼是控制當前應用程序域的證據?AppDomain Evidence沒有區域?
var evidence = Thread.GetDomain().Evidence;
什麼控制它是否爲null或非null,以及什麼決定它的內容?
當我的應用程序查詢這些主機的證據來自域證據
var z = evidence.GetHostEvidence<Zone>
var p = evidence.GetHostEvidence<Publisher>
var s = evidence.GetHostEvidence<Site>
var n = evidence.GetHostEvidence<StrongName>
var u = evidence.GetHostEvidence<Url>
彷彿他們有時都空在某些環境中執行時,它出現的對象。我相信這是IsolatedStorage._GetAccountingInfo(...)
內部拋出的一個異常,通過查看反射器中的代碼,很顯然,只有當域證據對於所有上述主機證據對象都包含null時,纔會拋出此異常。這會導致獨立存儲無法初始化。
不幸的是,我不能在我自己的系統上重現它。例如,Zone值總是一個合適的值,表示「我的電腦」,所以我正在努力解決這個問題。
什麼控制這些值在Windows窗體桌面應用程序的默認應用程序域中的內容?
它是由CLR主機時,它會創建主域初始化。隨着EvidenceBase的推出,.NET 4的重大變化,所以我會尋找仍然使用遺留證據的不尋常的託管方案。包括ClickOnce和進程內並行COM激活。 –
謝謝漢斯。它是通過普通MSI部署的.NET 4 winforms應用程序。所以在使用.NET4的普通機器上正常執行時會出現問題。域名證據與大會證據有什麼區別?在我的集會上,我預計大部分證據都會被遺漏,因爲它沒有很強的名字。 –