C# 从web服务从TFS签出文件

C# 从web服务从TFS签出文件,c#,web-services,tfs,tfs-sdk,C#,Web Services,Tfs,Tfs Sdk,我在这里读过几篇关于用TfsTeamProjectCollectionFactory替换过时的TeamFoundationServer的文章,但不是在web服务中。过时的方法在我的web服务中有效,但tfstreamprojectcollectionfactory方法无效。它总是在设置工作空间变量时引发异常: 没有C:\MyPath的工作文件夹映射 web服务使用一个分配给我的身份的应用程序池,我的身份是本地机器管理员,如果我将其设置为控制台应用程序,则新方法可以工作 在web服务中替换Team

我在这里读过几篇关于用
TfsTeamProjectCollectionFactory
替换过时的
TeamFoundationServer
的文章,但不是在web服务中。过时的方法在我的web服务中有效,但
tfstreamprojectcollectionfactory
方法无效。它总是在设置工作空间变量时引发异常:

没有C:\MyPath的工作文件夹映射

web服务使用一个分配给我的身份的应用程序池,我的身份是本地机器管理员,如果我将其设置为控制台应用程序,则新方法可以工作

在web服务中替换
TeamFoundationServer
是否可行

void TfsCheckout(string tfsServer, string wkSpace, string fileName)
{
    try
    {
        //new method
        var pc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsServer));
        var versionControlServer = (VersionControlServer)pc.GetService((typeof(VersionControlServer)));
        var workspace = versionControlServer.GetWorkspace(wkSpace);
        var result = workspace.PendEdit(fileName);

        //obsolete method
        var tfs = new TeamFoundationServer(tfsServer, new UICredentialsProvider());
        var versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
        var workspc = versionControl.GetWorkspace(Environment.MachineName, versionControl.AuthenticatedUser);
        result = workspc.PendEdit(fileName);

        UpdateStatus(new UpdateStatusEventArgs("Checkout: " + fileName));
        UpdateStatus(new UpdateStatusEventArgs("Result: " + result + " (1=success 0=fail)"));
    }
    catch (Exception ex)
    {
        UpdateStatus(new UpdateStatusEventArgs(ex.ToString()));
        UpdateStatus(new UpdateStatusEventArgs("Done"));
    }
}

将AuthorizedUser属性添加到我的GetWorkspace并使其正常工作:
var pc=new-tfstreamprojectcollection(new-Uri(tfsServer));var versionControlServer=(versionControlServer)pc.GetService((typeof(versionControlServer));var workspace=versionControlServer.GetWorkspace(Environment.MachineName,versionControlServer.AuthorizedUser);var result=workspace.PendEdit(文件名)