I'm getting this error when trying to deploy using Courier 2 using the content tree:
Any thoughts?
Umbraco.Courier.Core.Exceptions.PackageException: Unable to package item
'*REALLY LONG NAME*' from provider 'Documents' into filename '*REALLY LONG NAME*_1994' --->
System.IO.PathTooLongException: The specified path, file name, or both
are too long. The fully qualified file name must be less than 260
characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess
access, Int32 rights, Boolean useRights, FileShare share, Int32
bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String
msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.Serialization.Serializer.SerializeToFile(Object o, Type t, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
at Umbraco.Courier.Core.PackagingManager.()
at Umbraco.Courier.Core.PackagingManager.PackageQueue()
at Umbraco.Courier.UI.Dialogs.CommitItem.PackageSelectedItems()
at Umbraco.Courier.UI.Dialogs.CommitItem.oneSteptransfer(Object sender, EventArgs e)
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The
specified path, file name, or both are too long. The fully qualified
file name must be less than 260 characters, and the directory name must
be less than 248 characters.
System.IO.PathTooLongException: The
specified path, file name, or both are too long. The fully qualified
file name must be less than 260 characters, and the directory name must
be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess
access, Int32 rights, Boolean useRights, FileShare share, Int32
bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String
msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.Serialization.Serializer.SerializeToFile(Object o, Type t, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
My only fix some far is to rename the nodes to be smaller. However, this isn't ideal when a client is using Courier and may not understand the error. It would be nice to figure out a long term solution.
I had the same problem in the middle of last week. My only solution was to rename the nodes to something shorter as well. I agree it is annoying - has a bug report been filed? I'd be glad to vote it up.
Turns out there's a config setting in courier.config that specifies that short filenames should be used. After setting it to True, my deploys now work. Yay!
I made the change in the config file to allow short file names, but I still get the exception. Any other work arounds that don't require shortening of the node names?
Umbraco.Courier.Core.Exceptions.PackageException: Unable to package item 'Mile High For Haiti - 850 KOA and the Haitian Timoun Foundation Make It Easy for Coloradans to Donate to Recovery Efforts this Saturday' from provider 'Documents' into filename 'Mile High For Haiti - 850 KOA and the Haitian Timoun Foundation Make It Easy for Coloradans to Donate to Recovery Efforts this Saturday_1853' ---> System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. at System.IO.PathHelper.GetFullPathName() at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath) at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType) --- End of inner exception stack trace --- at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType) at Umbraco.Courier.Core.PackagingManager.() at Umbraco.Courier.Core.PackagingManager.PackageQueue() at Umbraco.Courier.UI.Dialogs.CommitItem.PackageSelectedItems() at Umbraco.Courier.UI.Dialogs.CommitItem.oneSteptransfer(Object sender, EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. at System.IO.PathHelper.GetFullPathName() at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath) at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
My item names are longer than what I would prefer, but I'm trying to make it work. I have no revisions at this point since I just installed courier and attempting the first deployment to the target site.
Long filenames causing errors in Courier 2
I'm getting this error when trying to deploy using Courier 2 using the content tree:
Any thoughts?
Umbraco.Courier.Core.Exceptions.PackageException: Unable to package item '*REALLY LONG NAME*' from provider 'Documents' into filename '*REALLY LONG NAME*_1994' ---> System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.Serialization.Serializer.SerializeToFile(Object o, Type t, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
at Umbraco.Courier.Core.PackagingManager.()
at Umbraco.Courier.Core.PackagingManager.PackageQueue()
at Umbraco.Courier.UI.Dialogs.CommitItem.PackageSelectedItems()
at Umbraco.Courier.UI.Dialogs.CommitItem.oneSteptransfer(Object sender, EventArgs e)
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.Serialization.Serializer.SerializeToFile(Object o, Type t, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
Did you get this sorted? I assume it has to do with the way Courier is naming the revision files/folders before it tries to send them to the server.
Has anyone else seen this or know of a fix?
My only fix some far is to rename the nodes to be smaller. However, this isn't ideal when a client is using Courier and may not understand the error. It would be nice to figure out a long term solution.
That kind of sucks as the way we have the node names set up some of them are always going to be quite long.
I had the same problem in the middle of last week. My only solution was to rename the nodes to something shorter as well. I agree it is annoying - has a bug report been filed? I'd be glad to vote it up.
--
Donald
Turns out there's a config setting in courier.config that specifies that short filenames should be used. After setting it to True, my deploys now work. Yay!
Thanks Per for the tip!
Does anyone know what the config setting is and where it should go please? I can't seem to find it anywhere.
I believe it was added in 2.1 or 2.1.1 so you would have to have that version setup, config files are here:
http://nightly.umbraco.org/UmbracoCourier/2.1.1/
I made the change in the config file to allow short file names, but I still get the exception. Any other work arounds that don't require shortening of the node names?
Hi Brent
Event though you make the change, existing revisions will have this issue, do you have an exception to post?
/Per
My exception is as follows:
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
at Umbraco.Courier.Core.PackagingManager.()
at Umbraco.Courier.Core.PackagingManager.PackageQueue()
at Umbraco.Courier.UI.Dialogs.CommitItem.PackageSelectedItems()
at Umbraco.Courier.UI.Dialogs.CommitItem.oneSteptransfer(Object sender, EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Umbraco.Courier.Core.Serialization.Serializer.SaveToFile(Byte[] bytes, String filePath)
at Umbraco.Courier.Core.PackagingManager.(ItemIdentifier itemId, ItemProvider provider, ItemType itemType)
My item names are longer than what I would prefer, but I'm trying to make it work. I have no revisions at this point since I just installed courier and attempting the first deployment to the target site.
is working on a reply...