c#连接到TFS取决于应用程序名(程序集名) 我正在编写一个连接到Team Foundation Server的程序。一切正常。但是如果我将我的.exe文件重命名为“TfsBugs_uфааП.exe”(带有多个大写俄文字符),应用程序就会崩溃。 它在connect TFS方法上崩溃,错误为:System.ArgumentException(指定的值包含无效的控制字符。参数名称:value)

c#连接到TFS取决于应用程序名(程序集名) 我正在编写一个连接到Team Foundation Server的程序。一切正常。但是如果我将我的.exe文件重命名为“TfsBugs_uфааП.exe”(带有多个大写俄文字符),应用程序就会崩溃。 它在connect TFS方法上崩溃,错误为:System.ArgumentException(指定的值包含无效的控制字符。参数名称:value),c#,tfs,httpwebrequest,user-agent,C#,Tfs,Httpwebrequest,User Agent,在消息框输出中,我可以看到: System.ArgumentException:指定的值包含无效的控制字符。参数名称:value :/System.Net.WebHeaderCollection.CheckBadChars(字符串名称,布尔值) 系统.Net.HttpWebRequest.SetSpecialHeaders(字符串头名称、字符串值) of System.Net.HttpWebRequest.set_UserAgent(字符串值) 如果Microsoft.TeamFoundatio

在消息框输出中,我可以看到:

System.ArgumentException:指定的值包含无效的控制字符。参数名称:value :/System.Net.WebHeaderCollection.CheckBadChars(字符串名称,布尔值)

系统.Net.HttpWebRequest.SetSpecialHeaders(字符串头名称、字符串值)

of System.Net.HttpWebRequest.set_UserAgent(字符串值)

如果Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.PrepareWebRequestStImpl(HttpWebRequest请求、字符串会话ID、ICredentials凭据、IdentityDescriptor IdentityImpersonate、Int32超时、字符串cultureName)

of Microsoft.TeamFoundation.Client.TeamFoundationClientProxy.PrepareWebRequest(HttpWebRequest请求)

of Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.CreateWebRequest(Uri,字符串命令)

of Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.CreateWebRequest(Uri)

我认为这是一个问题: System.Net.HttpWebRequest.set\u UserAgent(字符串值) 但为什么要将UserAgent传递给服务器呢?它不需要连接。 有idias吗

 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();
        }