1

Team Foundation Server に接続するプログラムを作成しています。すべて正常に動作します。しかし、.exe ファイルの名前を "TfsBugs_фЫвваП.exe" のように変更すると (ロシア語の大文字が 1 つ以上)、アプリがクラッシュします。connect TFS メソッドで次のエラーでクラッシュします: System.ArgumentException (指定された値には、無効な制御文字が含まれています。パラメーター名: 値)

 try
 {
    const String TFS_URL = @"https://tfs.bss.nvision-group.com";
    tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(TFS_URL));
    workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
    tfs.EnsureAuthenticated();
  }
 catch (Exception _exp)
        {
            MessageBox.Show("Program will be terminated \n\n" + _exp.ToString(), "Could not authenticate while connecting to TFS", MessageBoxButtons.OK, MessageBoxIcon.Error);
            Application.Exit();
        }

メッセージ ボックスの出力で、次の内容を確認できます。

System.ArgumentException: 指定された値に無効な制御文字が含まれています。パラメータ名: 値 × System.Net.WebHeaderCollection.CheckBadChars(文字列名、ブール値 isHeaderValue)

System.Net.HttpWebRequest.SetSpecialHeaders(String HeaderName, String value)

System.Net.HttpWebRequest.set_UserAgent(文字列値)

в Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.PrepareWebRequestImpl (HttpWebRequest 要求、文字列 sessionId、ICredentials 資格情報、IdentityDescriptor identityToImpersonate、Int32 タイムアウト、文字列 cultureName)

в Microsoft.TeamFoundation.Client.TeamFoundationClientProxy.PrepareWebRequest(HttpWebRequest リクエスト)

в Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.CreateWebRequest(Uri uri, String command)

в Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.CreateWebRequest(Uri uri)

これは問題だと思います: System.Net.HttpWebRequest.set_UserAgent(String value) しかし、なぜ UserAgent がサーバーに渡されるのでしょうか? 接続する必要はありません。何かイディア?

4

0 に答える 0