c# - Connecting to TfsTeamProjectCollection fails due to Application Pool Identity -


i have asp.net application uses tfs api , works under domain. problem locally works fine. after deployment iis, configured use applicationpoolidentity, app giving me 500 internal server error. when set identity use username , password works fine again. app uses windows authentication, , used multiple users.

we're submitting data tfs, , if identity configured username, in tfs history shows have modified item. need user made modification.

before in places, "assigned to" or "deployed by" used

var currentdisplayname = system.directoryservices.accountmanagement.userprincipal.current.displayname; 

after discovered issue, resolved using

var currentdisplayname = system.web.httpcontext.current.user.identity.name; 

but issue when use identity - applicationpoolidentity, app not working.

method team project collection:

var tfsteamprojecturl = configurationprovider.tfsteamprojecturl;         var teamprojectcollection = new tfsteamprojectcollection(new uri(tfsteamprojecturl));         teamprojectcollection.ensureauthenticated();         return teamprojectcollection; 

locally works fine, on iis, wants use identity iis app pools, need use credentials actual user.

update tried impersonate actual user doing this:

        var tfsteamprojecturl = configurationprovider.tfsteamprojecturl;          var baseuserconnection = new tfsteamprojectcollection(new uri(tfsteamprojecturl));         var ims = baseuserconnection.getservice<iidentitymanagementservice>();         var username = system.web.httpcontext.current.user.identity.name;          var identity = ims.readidentity(identitysearchfactor.accountname, username,             membershipquery.none, readidentityoptions.none);          var teamprojectcollection = new tfsteamprojectcollection(new uri(tfsteamprojecturl), identity.descriptor);         teamprojectcollection.ensureauthenticated();         return teamprojectcollection; 

but i'm gettin

an exception of type 'microsoft.teamfoundation.teamfoundationserverinvalidresponseexception' occurred in microsoft.teamfoundation.client.dll not handled in user code additional information: please contact administrator. there error contacting server. technical information (for administrator): http code 500: internal server error

it seems iis deciding try access tfs app pool identity instead of credentials explicitly supplying. authenticating server not using server object, app reverting whatever identity running under.

try use authentication below code:

string tfsserverurl = "http://servername:8080/tfs"; system.net.networkcredential tfscredential = new system.net.networkcredential("serviceaccountname", "password", "domain"); tfsconfigurationserver tfs =  new tfsconfigurationserver(new uri(tfsserverurl), tfscredential); tfs.authenticate();  

Comments