Share via


UAG WebDAV Move method

Scenario :

Publishing SharePoint 2013 ( but should apply to 2010 as well) via UAG
Multiple SharePoint servers are used with a hardware load balancer positioned between the UAG and backend SharePoint servers and a V.I.P created for access
A client access SharePoint via UAG and uses the SharePoint explorer view to attempt to move a file
The attempt to move the file results in failure and the message "The specified file name is invalid or too long. give it a different file name” is seen

Troubleshooting :-

A fiddler trace from a client attempting a file move looks like this example
(request and response)

REQUEST
MOVE https://hostname_used_to_publish_SharePoint/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test3.docx HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/6.3.9600
Destination:
https://hostname_used_to_publish_sharePoint/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test12/Test3.docx
Overwrite: F
translate: f
Content-Length: 0
Host: hostname_used_in_UAG_portal
Cookie: uniquesigD49DA2EE7EE2F5A96A7CFFB41F8398E63798B66993EFD4F38D7E43778A304F4773A460470B8CE5BF6D9080AD80FECF6A=MMBLKMMDDMGLIOFMILBGENHB; NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; BIGipServerRD_010_POOL_STD_10.140.100.6_443=rd10o00000000000000000000ffff0a8c6216o443; NLSessionSepmPersistForOffice=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; dwLastDetectionTimestamp=2015,3,13,13,51,47,0;
WhlWinTitle=EPM@TS%3A%3A%20External%20Collaboration%20-%20DE_EPM-Test_2_3_3_PV%20-%20Shared%20Documents; .ASPXAUTH=8535D3DDAFEB1E47A45E24D1780E677E5CBB6F656CB09D9109C1F9582D99F231DAEE02D10ACD0A9602C8926420A541C6C1906BBA3F5518DE9D512D22FC88265104BA06E1028FFD0A397D59002E42FE02240E6A2481C4A9F9016A8980977D4A3F40CAB2596A8FD912E9AC4033A9C0D76E4A10DD30; ASP.NET_SessionId=1fugy045e3brr445yoo2bm55; NLSessionSepmPersistForOffice=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA
3VVDx; BIGipServerRD_010_POOL_STD_10.140.100.6_443=rd10o00000000000000000000ffff0a8c6211o443

RESPONSE
HTTP/1.1 400 BAD REQUEST
Cache-Control: private,max-age=0
Content-Length: 0
Server: Microsoft-IIS/7.5
Exires: Sun, 29 Mar 2015 11:52:37 GMT
Public-Extension:
http://schemas.microsoft.com/repl-2
*X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 12.0.0.6608
X-MSDAVEXT_Error: 589829; The%20URL%20%27https%3a%2f%2fhostname_used_in_UAG_portal%2fextranet%2fprojects2%2fDE%5fEPM%2dTest%5f2%5f3%5f3%5fPV%2fShared%20Documents%2fTest12%2fTest3%2edocx%27%20is%20invalid%2e%20%20It%20may%20refer%20to%20a%20nonexistent%20file%20or%20folder%2c%20or%20refer%20to%20a%20valid%20file%20or%20folder%20that%20is%20not%20in%20the%20current%20Web%2e
Server: Microsoft-IIS/6.0
Set-cookie: NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx;path=/;secure
Set-cookie: NLSessionSepmPersistForOffice=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx;path=/;secure;expires=Mon 13-Apr-2015 11:55:53 GMT
X-Powered-By: ASP.NET
Date: Mon, 13 Apr 2015 11:55:38 GMT
*
The text after X-MSDAVEXT_Error: 589829; decodes to :-
The URL 'https://hostname_used_to_publish_sharepoint/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared Documents/Test12/Test3.docx' is invalid.  It may refer to a nonexistent file or folder, or refer to a valid file or folder that is not in the current Web.

If you see this error in a fiddler trace - capture a UAG trace and search for the outgoing request from UAG to backed SharePoint server which responds to the HTTP Request:-
--------------------------------------------------------------------------------------------
MOVE
https://hostname_used_to_publish_SharePoint/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test3.docx HTTP/1.1
Connection: Keep-Alive
User-Agent: Microsoft-WebDAV-MiniRedir/6.3.9600
Destination:
https://hostname_used_to_publish_SharePoint/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test12/Test3.docx
Overwrite: F
translate: f
Content-Length: 0
Host: hostname_used_in_UAG_portal
Cookie: uniquesigD49DA2EE7EE2F5A96A7CFFB41F8398E63798B66993EFD4F38D7E43778A304F4773A460470B8CE5BF6D9080AD80FECF6A=MMBLKMMDDMGLIOFMILBGENHB; NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; BIGipServerRD_010_POOL_STD_10.44.88.10_443=rd10o00000000000000000000ffff0a8c6216o443; NLSessionSepmPersistForOffice=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; dwLastDetectionTimestamp=2015,3,13,13,51,47,0;
WhlWinTitle=EPM@TS%3A%3A%20External%20Collaboration%20-%20DE_EPM-Test_2_3_3_PV%20-%20Shared%20Documents*; .ASPXAUTH=8535D3DDAFEB1E47A45E24D1780E677E5CBB6F656CB09D9109C1F9582D99F231DAEE02D10ACD0A9602C8926420A541C6C1906BBA3F5518DE9D512D22FC88265104BA06E1028FFD0A397D59002E42FE02240E6A2481C4A9F9016A8980977D4A3F40CAB2596A8FD912E9AC4033A9C0D76E4A10DD30; ASP.NET_SessionId=1fugy045e3brr445yoo2bm55; NLSessionSepmPersistForOffice=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; BIGipServerRD_010_POOL_STD_10.44.88.10_443=rd10o00000000000000000000ffff0a8c6211o443

*
This shows an example UAG trace snippet showing the http request to the Backend SharePoint Servers
178005 [0]1f3c.2230 04/13/2015-12:55:38.879 [01cb5c80-f800-0008-db8f-16b31165d001] [whlfilter CExtECB::BuildClientRequestBuff WhlExt2IWS.cpp@4712] Info:Request sent from filter to web server (ExtECB=0000000006392E50), (PFC=0000000014737678) ---
178006 [0]1f3c.2230 04/13/2015-12:55:38.879 [01cb5c80-f800-0008-db8f-16b31165d001] [whlfilter CExtECB::BuildClientRequestBuff
WhlExt2IWS.cpp@4727] Info:[MOVE /extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test3.docx HTTP/1.1
178007
178008 Connection: Keep-Alive
178009
178010 Content-Length: 0
178011
178012 Cookie: NLSessionSepm=xmH14fYDtR2A0D6L8Q7P9OZjASyty3iW1+VBzDI2gZ7nyARBz1Ov3F/ynnCoY+nJxUL9QBuszTvkL0zpIEvlWRK6JOdi0DlTt4ad77VDfYPLKMIR8WXwyRK5RPA3VVDx; BIGipServerRD_010_POOL_STD_10.44.88.10_443=rd10o00000000000000000000ffff0a8c6216o443; dwLastDetectionTimestamp=2015,3,13,13,51,47,0;
WhlWinTitle=EPM@TS%3A%3A%20External%20Collaboration%20-%20DE_EPM-Test_2_3_3_PV%20-%20Shared%20Documents; .ASPXAUTH=8535D3DDAFEB1E47A45E24D1780E677E5CBB6F656CB09D9109C1F9582D99F231DAEE02D10ACD0A9602C8926420A541C6C1906BBA3F5518DE9D512D22FC88265104BA06E1028FFD0A397D59002E42FE02240E6A2481C4A9F9016A8980977D4A3F40CAB2596A8FD912E9AC4033A9C0D76E4A10DD30; ASP.NET_SessionId=1fugy045e3brr445yoo2bm55; BIGipServerRD_010_POOL_STD_10.44.88.10_443=rd10o00000000000000000000ffff0a8c6211o443
178013
178014 Host: host_used_
178015
178016 User-Agent: Microsoft-WebDAV-MiniRedir/6.3.9600
178017
178018 Destination:
https://10.44.88.10/extranet/projects2/DE_EPM-Test_2_3_3_PV/Shared%20Documents/Test12/Test3.docx
178019
178020 Overwrite: F
178021
178022 translate: f
178023
178024 UAGActivityId: {01CB5C80-F800-0008-DB8F-16B31165D001}
178025
178026
178027
178028 ]
178029 [0]1f3c.2230 04/13/2015-12:55:38.879 [01cb5c80-f800-0008-db8f-16b31165d001] [whlfilter CExtECB::BuildClientRequestBuff
WhlExt2IWS.cpp@4729] Info:End of request sent from filter to web server (ExtECB=0000000006392E50), (PFC=0000000014737678) ---

If you notice that the destination header contains an I.P. instead of a hostname then the SharePoint application has been published with the V.I.P is in the address field of the Web servers tab and the backend SharePoint servers do not recognise the destination path

To resolve :-
**Set up a host entry in the UAG host file or an internal DNS entry(if the internal interface points to local DNS), which will resolve a hostname (which the SharePoint will recognise), to the V.I.P address .
Then replace the V.I.P in the address field of the web servers tab with the hostname

UAG Behaviour:-
UAG will use the value (hostname or I.P. address ) in the address field of the Web servers tab when it creates the value for  HTTP destination header value when sending on a WEBDAV move request to the backend server
**