When I try and use the right click deploy functionallity of Courier 2.1 I'm getting the following application error.
Is there any way to track down where the invalid character is hiding?
Error details
System.InvalidOperationException: Response is not well-formed XML. ---> System.Xml.XmlException: '', hexadecimal value 0x12, is an invalid character. Line 6, position -709.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException(XmlReader reader)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Umbraco.Courier.RepositoryProviders.WebServiceProvider.RepositoryWebservice.TransferResources(ResourceTransfer[] resources, String user, String pass)
at Umbraco.Courier.RepositoryProviders.CourierWebserviceRepositoryProvider.TransferResources(ResourceTransfer[] resources)
at Umbraco.Courier.Core.ExtractionManager.ExtractItemResources(Item item, ResourceExtractionOrder order)
at Umbraco.Courier.Core.ExtractionManager.ExtractResources(ResourceExtractionOrder order)
at Umbraco.Courier.UI.Dialogs.CommitItem.TransferAndExtractOnSelectedRepo(String repo)
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)'', hexadecimal value 0x12, is an invalid character. Line 6, position -709.
System.Xml.XmlException: '', hexadecimal value 0x12, is an invalid character. Line 6, position -709.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32&
The character is most likely in one of the property fields of one of the documents you are trying to transfer, the char 0x12 is not allowed in Xml, and most likely comes from pasted content from Word.
I think, according to the stacktrace, this happens when courier tries to transfer a resource file
So check app_data\courier\revisions\ then pick the newest folder
Go to resources, this contains the files associated with your selected items, and there is probably quite a few, but it appears it's one of those files
I'll follow this one up early next week. The site I'm having the problem on has 5000+ nodes and more than 20 editors, I thought it might have been something pasted from Word. The other thing I forgot in my previous post was that I get the same error on every node I've tried to deploy via right click in the content tree.
I haven't had any luck with this problem yet. The site I'm having the problem with is one that has been continually upgraded from version 3.x over the years to 4.7.
I had a very similar problem with Courier 2.1.1 on Umbraco 4.7.0. (My slightly different stack trace is at the end of the post for anyone interested.)
The problem broke down as follows: Among the objects I was trying to transfer was a masterpage that contains an img tag that references a static image in the /images directory of the site. Courier detects that the masterpage is dependent on the static image and includes it as part of the transfer. I gather that courier then tries to write the image to the /images directory on the destination site but fails because the identity of the site's app pool does not have permission to write to that directory. Granting write permission for this directory on the source and destination sites resolved the problem.
This suggests that in general it is necessary to grant the destination site (or possibly both sites) write access to any paths that contain static resources that courier can detect as dependencies.
The error message and stack trace for my case follows. How a write access issue ultimately results in the error message actually shown is unknown to me at this point.
Application Error
There was a problem with extracting database information for the item: Name:Page | Id:Page | Provider:Templates
Error details
Umbraco.Courier.Core.Exceptions.ExtractionManagerException: There was a problem with extracting database information for the item: Name:Page | Id:Page | Provider:Templates ---> System.InvalidOperationException: Response is not well-formed XML. ---> System.Xml.XmlException: '', hexadecimal value 0x12, is an invalid character. Line 6, position -703.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException(XmlReader reader)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Umbraco.Courier.RepositoryProviders.WebServiceProvider.RepositoryWebservice.TransferResources(ResourceTransfer[] resources, String user, String pass) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\webservice.cs:line 1094
at Umbraco.Courier.RepositoryProviders.CourierWebserviceRepositoryProvider.TransferResources(ResourceTransfer[] resources) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\CourierWebserviceRepositoryProvider.cs:line 286
at Umbraco.Courier.Core.ExtractionManager.ExtractItemResources(Item item, ResourceExtractionOrder order)
at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency)
at Umbraco.Courier.Core.ExtractionManager.?()
at Umbraco.Courier.Core.ExtractionManager.?()
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
at Umbraco.Courier.UI.Dialogs.CommitItem.TransferAndExtractOnSelectedRepo(String repo)
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)
Response is not well-formed XML.
System.InvalidOperationException: Response is not well-formed XML. ---> System.Xml.XmlException: '', hexadecimal value 0x12, is an invalid character. Line 6, position -703.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException(XmlReader reader)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Umbraco.Courier.RepositoryProviders.WebServiceProvider.RepositoryWebservice.TransferResources(ResourceTransfer[] resources, String user, String pass) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\webservice.cs:line 1094
at Umbraco.Courier.RepositoryProviders.CourierWebserviceRepositoryProvider.TransferResources(ResourceTransfer[] resources) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\WebserviceProvider\CourierWebserviceRepositoryProvider.cs:line 286
at Umbraco.Courier.Core.ExtractionManager.ExtractItemResources(Item item, ResourceExtractionOrder order)
at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency)
at Umbraco.Courier.Core.ExtractionManager.?()
at Umbraco.Courier.Core.ExtractionManager.?()
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
'', hexadecimal value 0x12, is an invalid character. Line 6, position -703.
System.Xml.XmlException: '', hexadecimal value 0x12, is an invalid character. Line 6, position -703.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, StringBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseCharRefInline(Int32 startPos, Int32& charCount, EntityType& entityType)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadSoapException(XmlReader reader)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
I had a similar problem, and Timothy's helpful post put me in the right direction. I'm using the source control system in Microsoft Team Foundation Server. When I ftp'ed the files on to my server from my local machine, they were marked as read-only on disk, because they were locked by source control. This was giving me problems when trying to use Courier (I also couldn't save changes made to a template through the Umbraco UI, for example). Anyway, right-clicking on the root of my website, choosing properties, unchecking the readonly checkbox, clicking Apply, and OK sorted it for me (Windows 7).
Courier 2.1 Response is not well-formed XML
Hi
When I try and use the right click deploy functionallity of Courier 2.1 I'm getting the following application error.
Is there any way to track down where the invalid character is hiding?
Error details
Hi Even
The character is most likely in one of the property fields of one of the documents you are trying to transfer, the char 0x12 is not allowed in Xml, and most likely comes from pasted content from Word.
I think, according to the stacktrace, this happens when courier tries to transfer a resource file
So check app_data\courier\revisions\ then pick the newest folder
Go to resources, this contains the files associated with your selected items, and there is probably quite a few, but it appears it's one of those files
Thats the best guess I have right now atleast
Thanks Per
I'll follow this one up early next week. The site I'm having the problem on has 5000+ nodes and more than 20 editors, I thought it might have been something pasted from Word. The other thing I forgot in my previous post was that I get the same error on every node I've tried to deploy via right click in the content tree.
I'll let you know how I go tracking it down.
Cheers
Evan
We are getting this error too. Is there any way to be a bit more specfic on where to look for the problem?
I haven't had any luck with this problem yet. The site I'm having the problem with is one that has been continually upgraded from version 3.x over the years to 4.7.
I don't suppose anyone figured this issue out yet? I'm getting the similar issue. Although, it's a hex 0x10 character.
(SOLVED)
I had a very similar problem with Courier 2.1.1 on Umbraco 4.7.0. (My slightly different stack trace is at the end of the post for anyone interested.)
The problem broke down as follows: Among the objects I was trying to transfer was a masterpage that contains an img tag that references a static image in the /images directory of the site. Courier detects that the masterpage is dependent on the static image and includes it as part of the transfer. I gather that courier then tries to write the image to the /images directory on the destination site but fails because the identity of the site's app pool does not have permission to write to that directory. Granting write permission for this directory on the source and destination sites resolved the problem.
This suggests that in general it is necessary to grant the destination site (or possibly both sites) write access to any paths that contain static resources that courier can detect as dependencies.
The error message and stack trace for my case follows. How a write access issue ultimately results in the error message actually shown is unknown to me at this point.
Thanks Timothy
I checked permissions on our live site and had the same problem with images in a directory without having permisions to write to it.
However it only changed my error message... now the transfer is timing out.
Well done for nailing a solution with your first post on the forum!
Cheers
Evan
Hi all,
I had a similar problem, and Timothy's helpful post put me in the right direction. I'm using the source control system in Microsoft Team Foundation Server. When I ftp'ed the files on to my server from my local machine, they were marked as read-only on disk, because they were locked by source control. This was giving me problems when trying to use Courier (I also couldn't save changes made to a template through the Umbraco UI, for example). Anyway, right-clicking on the root of my website, choosing properties, unchecking the readonly checkbox, clicking Apply, and OK sorted it for me (Windows 7).
Cheers,
David
is working on a reply...