Team Foundation Server Proxy のトラブルシューティング

更新 : 2007 年 11 月

このトピックは、Team Foundation Server プロキシおよびアプリケーション層を使用するときに発生する一般的な懸案事項を示します。

  • ファイル キャッシュのルートへのアクセス時の UnauthorizedAccessException

  • Proxy Service アカウントのパスワードの有効期限切れにより発生する AccessDenied 例外

  • QueryProxyStatistics Web メソッドの起動時の InvalidOperationException

  • 新しい秘密キーの生成時の CryptographicException

これらのヒントや個々のエラー メッセージのヘルプ トピックのヒントを確認しても問題を解決できない場合は、Visual Studio Team System フォーラム (https://go.microsoft.com/fwlink/?LinkId=54490) を確認してください。これらのフォーラムには、さまざまなトラブルシューティングのトピックに関する検索可能なスレッドがあり、質問に対して迅速に応答できるように監視されています。

ファイル キャッシュのルートへのアクセス時の UnauthorizedAccessException

CacheRoot フォルダにアクセスするときに、プロキシ サーバーのイベント ログに次のようなエラー メッセージが記録される場合があります。

TF53010: 予期しない条件が Team Foundation コンポーネントで発生しました。

ここに含まれている情報は、サイトの管理者によって使用可能でなければなりません。

技術情報 (管理者用):

例外メッセージ: パス 'C:\Program Files\Microsoft Team Foundation 2005\Web Services\VersionControlProxy\Data\00000000-0000-0000-0000-000000000000\00' へのアクセスが拒否されました。(種類 UnauthorizedAccessException)

例外スタック トレース:

   場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

   場所 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)

   場所 System.IO.DirectoryInfo.Create(),

このエラーは、プロキシ サービス アカウントがキャッシュのルート フォルダにアクセスするための適切なアクセス許可を持っていない場合に発生します。このエラーを修正するには、Proxy Service アカウントに対し、キャッシュのルート フォルダの [読み取り] と [書き込み] の両方のアクセス許可が [許可] に設定されていることを確認します。

Proxy Service アカウントのパスワードの有効期限切れにより発生する AccessDenied 例外

Proxy Service アカウントのパスワードの有効期限が切れている場合、プロキシ サービスがアプリケーション層からファイルをダウンロードするときに、次のエラーが発生します。

詳細メッセージ: ErrorDownloadingFromAppTier

例外メッセージ: <html><head><title>エラー</title></head><body>エラー: アクセスが拒否されました。</body></html> (種類 ProxyException)

例外スタック トレース:

    場所 Microsoft.TeamFoundation.VersionControl.Server.Proxy.ProxyRepository.GetDownloadResponse(String downloadUrl)

   場所 Microsoft.TeamFoundation.VersionControl.Server.Proxy.CacheMissDownloadStatus.StartDownload()

   場所 Microsoft.TeamFoundation.VersionControl.Server.Proxy.CacheMissWriter.PerformDownload(Object stateInfo)

エラー: アクセスが拒否されました。

この問題を回避するには、スクリプトを使用して、パスワードの有効期限切れについて通知が届くようにします。これらの通知を受け取ったときには、サービスに影響が生じる前にサービス アカウント パスワードを更新する必要があります。この種のスクリプトの例については、Microsoft Developer Network の技術情報 (https://go.microsoft.com/fwlink/?LinkId=69960) を参照してください。

QueryProxyStatistics Web メソッドの起動時の InvalidOperationException

ProxyStatistics Web メソッドを起動するときに、プロキシ サーバーのイベント ログに次のようなエラー メッセージが記録される場合があります。

System.InvalidOperationException: 一時クラス (result=1) を生成できませんでした。

エラー CS2001: ソース ファイル 'C:\WINDOWS\TEMP\fxe6fkpm.0.cs' が見つかりませんでした。

エラー CS2008: 入力が指定されていません。

   場所 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, CompilerParameters parameters, Evidence evidence)

   場所 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, CompilerParameters parameters, Assembly assembly, Hashtable assemblies)

   場所 System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)

   場所 System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Evidence evidence)

   場所 System.Web.Services.Protocols.XmlReturn.GetInitializers(LogicalMethodInfo[] methodInfos)

   場所 System.Web.Services.Protocols.XmlReturnWriter.GetInitializers(LogicalMethodInfo[] methodInfos)

   場所 System.Web.Services.Protocols.MimeFormatter.GetInitializers(Type type, LogicalMethodInfo[] methodInfos)

   場所 System.Web.Services.Protocols.HttpServerType..ctor(Type type)

   場所 System.Web.Services.Protocols.HttpServerProtocol.Initialize()

   場所 System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)

このエラーを修正するには、Proxy Service アカウントに対し、%WINDIR%\Temp フォルダの [読み取り]、[読み取りと実行]、および [フォルダの内容の一覧表示] の各アクセス許可が [許可] に設定されていることを確認します。

新しい秘密キーの生成時の CryptographicException

RSACryptoProvider が新しい秘密キーを生成できない場合に、プロキシ サーバーのイベント ログに次のような CryptographicException が記録されることがあります。

例外: CryptographicException

メッセージ: キー セットがありません。

スタック トレース:

   場所 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)

   場所 System.Security.Cryptography.SafeProvHandle._FreeCSP(IntPtr pProvCtx)

   場所 System.Security.Cryptography.SafeProvHandle.ReleaseHandle()

   場所 System.Runtime.InteropServices.SafeHandle.InternalDispose()

   場所 System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing)

   場所 System.Runtime.InteropServices.SafeHandle.Dispose()

   場所 System.Security.Cryptography.RSACryptoServiceProvider.Dispose(Boolean disposing)

   場所 System.Security.Cryptography.AsymmetricAlgorithm.System.IDisposable.Dispose()

   場所 Microsoft.VisualStudio.Hatteras.Util.RequestSignatures.GenerateNewPrivateKey(Int32 keyLength)

   場所 Microsoft.VisualStudio.VersionControl.Server.AdministrationManager.GenerateRepositoryKey(IPrincipal userPrincipal, Int32 keyLength)

   場所 Microsoft.VisualStudio.Hatteras.Server.Global.Initialize()

   場所 Microsoft.VisualStudio.TeamFoundation.Server.TeamFoundationApplication.InitializeInternal()

このエラーは、RSACryptoProvider がキー ファイルを作成したが、アクセス許可が不十分でキー ファイルを削除できない場合に発生します。

ms400681.alert_note(ja-jp,VS.90).gifメモ :

この問題はアプリケーション層でのみ発生します。

このエラーを修正するには、Proxy Service アカウントに対し、Documents and Settings フォルダの RSA Machine Key フォルダ (たとえば C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA) の [フル コントロール] のアクセス許可が [許可] に設定されていることを確認します。

参照

概念

Team Foundation Server Proxy に対するリモート接続の管理

Team Foundation Server Proxy の Web.Config ファイルの設定