1

これは重複した質問ではないと思いますが、それは私がこの問題を完全に理解していないためかもしれません。

少なくとも私が読んだ多くの投稿によると、この例外は設計によるようです。しかし、この例外は定期的に私のアプリケーションを壊しています。Web サービスの呼び出しが再度行われると、動作しているように見えます (魔法のように!)。しかし、私はその最初の Web サービス呼び出しが機能することを望んでいます。

これはログに記録されている例外です:

System.IO.FileNotFoundException: Could not load file or assembly 'Our.Namespace.Here.ClassName.XmlSerializers' or one of its dependencies. The system cannot find the file specified.
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.LoadWithPartialNameInternal(AssemblyName an, Evidence securityEvidence, StackCrawlMark& stackMark)
   at System.DirectoryServices.AccountManagement.UnsafeNativeMethods.IADsPathname.Retrieve(Int32 lnFormatType)
   at System.DirectoryServices.AccountManagement.ADStoreCtx.LoadDomainInfo()
   at System.DirectoryServices.AccountManagement.ADStoreCtx.get_DnsForestName()
   at System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemberOf(Principal p)
   at System.DirectoryServices.AccountManagement.Principal.GetGroupsHelper()
   at Our.Different.Namespace.ClassName.FindAccount(FindAccountRequest request, String ip, FindAccountResponse& response)

リリース モードでビルドするときに、ビルド出力の一部としてこの XmlSerializers ファイルを取得しません。ファイルを強制的に生成できるように思えますが、ファイルを強制的に生成せずに例外を停止するにはどうすればよいですか?

4

2 に答える 2

0

同様のエラー メッセージが表示されましたが、根本的な原因は、System.DirectoryServices を使用しているときに Windows のバージョンでこの AD バグ ( https://support.microsoft.com/en-us/kb/2683913 ) であることが判明しました。 .NET の AccountManagement 名前空間。

于 2015-09-23T11:05:49.863 に答える
0

この場合の問題の根本は、Active Directory と通信するネットワークの問題です。FileNotFoundException は、COM 例外 (IADsPathname COM インターフェイス内) をシリアル化しようとしているときに発生しました。この FileNotFoundException は、XmlSerializer の通常の操作の一部です。これは、フレームワーク コード内で捕捉され、処理されることが予想されます (必要なアセンブリの生成が発生します)。無視して続行してください。

于 2014-03-10T10:45:49.617 に答える