1

今日、お客様の環境にログインしてログを確認し、通常は検査を行いますが、1つのアプリケーションで一部のタスクが失敗したことに気付くだけです。

アプリケーションは、IIS内で実行されているc#.net v4で記述され、Sharepoint2007にエクスポートされます。

.netまたはSharePointが原因であるかどうかを100%確信することはできません。これらは私が得たエラーです:

タスクが失敗しました:サーバーはリクエストを処理できませんでした。--->ファイル'C:\ Windows \ TEMP\qbckfur1.dll'が見つかりませんでした。
エクスポート26.05.201115:00:21失敗
タスクが失敗しました:サーバーは要求を処理できませんでした。--->ファイル'C:\ Windows \ TEMP\2shjg2xb.dll'が見つかりませんでした。
エクスポート26.05.201115:30:13失敗
タスクが失敗しました:サーバーは要求を処理できませんでした。--->ファイル'C:\ Windows \ TEMP\b7utp199.dll'が見つかりませんでした。
エクスポート26.05.201116:00:15失敗
タスクが失敗しました:サーバーは要求を処理できませんでした。--->ファイル'C:\ Windows \ TEMP\ozr2umkm.dll'が見つかりませんでした。

これは誰にも馴染みがあるように見えますか?

4

1 に答える 1

3

これはXmlSerialization(信じられないかもしれませんが)の問題です。カスタムASP.NETMVCアプリでこれに遭遇しました。Serializeどうやら、または「シリアル化可能」とマークされたタイプを呼び出すとDeserialize、.NETはシリアル化をサポートするためにオンザフライでアセンブリを生成し、そのアセンブリを「c:\ windows\temp」に書き込もうとします。

そのディレクトリへのフルコントロールアクセス権がある場合Everyoneでも、IISアプリプール内からアプリを実行すると、これが発生することを確認しました。特に、シリアル化アクティビティが多いアプリケーションでは。

これが問題のように思われる場合、解決策は、シリアル化アセンブリを「プリコンパイル」し、WindowsSDKのsgen一部であるアプリケーションに含めることです。

この投稿では、同様の問題に焦点を当てています。MSDNSocialのシリアル化の問題

ツールに関するMSDNの記事は次のとおりです。sgenリファレンス

最後の注意:Tool for .NET 4.0には別のバージョンがあるため、アセンブリを生成するときに正しいバージョンを使用していることを確認してください。

于 2011-06-29T04:18:33.207 に答える