在網絡驅動器上運行時,我們的C++解決方案(調用.NET 4.0程序集)存在一個奇怪的問題。該解決方案使用NetTcpBinding託管多個WCF服務,其中一個使用非默認綁定配置。非默認NetTcpBinding本身在部分信任下不可能(請參閱堆棧溢出問題When does WCF NetTcpBinding need full trust on the client?),但該解決方案在完全可信的網絡驅動器下運行。這並不工作在幾個不同的計算機(Windows Vista和Windows 7),但拋出一個異常失敗的一個(Windows Vista中),.NET程序集在網絡驅動器上部分信任運行,但所有其他信任完全信任
出錯創建「system.serviceModel /綁定」配置節處理程序:該程序集不允許部分受信任的呼叫者。 (K:\ Somepath \ Testing.exe.Config 6號線)
這個例外是完全以確定,如果解決方案的確會在該計算機上的部分信任模式下運行,但它確實在完全信任運行。即使我檢查完全信任代碼,它也是如此。
我們使用其中一臺計算機重新檢查了Internet選項 - 沒有差異。
所有DLL文件和EXE文件都是強命名的。
更新: 網絡驅動器完全信任特定計算機(caspol.exe
)。
我們應該尋找什麼?
如果您需要更多信息,請讓我知道。
更新2: 我們仍然有這個問題,現在甚至在一臺計算機上更多(Windows 7)。所以它似乎與操作系統無關。
如果fulltrust組件調用調用另一個fullthrust組的部分信任域可以堅持一個partialtrust組裝。應該有一些設置來獲得「主要」信任而不是部分信任。關於使用完整的棧道而不是最小級別的棧道。對CAS沒有足夠的工作來記住。也許你必須在給出答案的代碼的某個地方「還原」信任,或者用一個額外的屬性來修飾它。 – CodingBarfield 2011-01-31 08:44:35
我正面臨與.net 4.0項目相同的問題。你有沒有找到解決這個問題的辦法?我們啓用了LoadFromRemoteSources和Legacy激活等,但仍然出現錯誤 – praskris 2012-06-19 20:12:45
我在我的答案中找到解決方法(在代碼中設置綁定設置,而不是在app.config中)後,我沒有再次研究它。如果你發現了什麼,請告訴我們:) – gumo 2012-06-20 07:41:53