15


4

ASP.NetはPRODUCTIONでコピー/シャドウコピーを作成できません

最近、Windows Server 2008 R2で実行されるVS2010および.NET 4.0を使用するために、かなり大きなASP.NET Webサイト(1500番目のalexaトラフィックランキング)を更新しました。

それ以来、新しいバージョンのサイトを展開する際に、この投稿で同じエラーに時々気づきました:https://stackoverflow.com/questions/1007200/asp-net-cannot-create-shadow-copy[ASP.Net cannot create / shadowコピー]エラーメッセージは次のとおりです。そのファイルが既に存在する場合、「xxxx、Version = 4.0.4301.26898、Culture = neutral、PublicKeyToken = null」を作成/シャドウコピーできません

ただし、その投稿とは異なり、エラーは本番環境と一部のサーバーでのみ発生しています。

新しいバージョンのコードを出荷した後、すべてのAppPoolをリサイクルし、エラーが発生し始めます。

AppPoolをさらにリサイクルすると問題は解決するようですが、そもそもこの問題を回避する方法を知りたいのですが。

2 Answer


4


一時的なasp.netフォルダーをインデックス作成(およびウイルススキャン)から除外することで、シャドウコピーエラーが排除されることがわかりました。

Windows Server 2003のインデックスサービスのPowerShellスクリプトの例:

Set-ItemProperty –path

_ HKLM:\ SYSTEM \ CurrentControlSet \ Control \ ContentIndex \ Catalogs \ Web \ Scopes -name“ C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files” -value ",, 4" _

Restart-Service cisvc


4


「作成できない/シャドウコピーできない」という問題をようやく解決しました。 この問題は、AppPoolのリサイクルとディレクトリコピーのタイミングが原因であることが判明しました。 これは次のように働きました:

  1. メインWebサイトをserver \ directoryにコピーします

  2. ウェブサイトのアプリプールをリサイクルする

  3. 小さな管理サイトをserver \ otherdirectoryにコピーします

問題は、管理サイトがメインサイトの仮想ディレクトリであり、同じAppPoolを使用していたことです。 これは.NET 2.0で正常に機能しましたが、.NET 4.0にアップグレードしたときに障害を特定できると思います。 代わりにこの方法で実行すると、正常に実行されるようです:

  1. メインWebサイトをserver \ directoryにコピーします

  2. 小さな管理サイトをserver \ otherdirectoryにコピーします

  3. ウェブサイトのアプリプールをリサイクルする