4

いくつかの WCF サービスを提供する .NET 3.5 Web アプリを IIS にインストールしています。これは 1 年以上にわたって数十の企業に導入されていますが、最近、あるサーバーで、サービスを呼び出したり、IE で .svc ファイルに移動したりするときに、次のエラーが発生しました。

System.ServiceModel.ServiceActivationException: The service '/MyService/MySyncService.svc' cannot be activated due to an exception during compilation. The exception message is: Could not load file or assembly 'App_global.asax.vtxl8efb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.. ---> System.IO.FileNotFoundException: Could not load file or assembly 'App_global.asax.vtxl8efb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'App_global.asax.vtxl8efb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

サーバーには週末に Windows Update が適用されていましたが、その後このエラーが発生し、サービスが機能していませんでした。同じサーバー上の WCF ではなく、別の .NET 3.5 Web アプリが正常に動作していました。

アプリ プールを停止し、C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\myservice 内のファイルを削除して、アプリ プールを再度開始することで問題を解決できました。

しかし、なぜこれが起こるのか、そしてそれを防ぐために何ができるのかを知りたい. Windows Update を適用した後で、すべてのクライアントにこれらの手順を実行するように依頼するのは合理的ではないようです。

これらのアプリのいずれかで Web 展開プロジェクトを使用していません (このようなエラーへの唯一の参照は、このような Web 展開プロジェクトを参照していることがわかります)。Web アプリケーション プロジェクトがビルドされ、コピー デプロイされます。

MS がパッチをリリースしたこの問題に少し似ていますが、実際には同じではありません。

MSDN フォーラムに相互投稿。

4

1 に答える 1