共用方式為


Potential error when browsing documents in Office Web Apps after applying SharePoint 2013 SP1 and Office Web Apps SP1

Good Morning.

I was updating a farm to SP 2013 SP1 and OWA SP1 and after that I had an error when browsing files on OWA. When I put the OWA ULS logs to Verbose I found the following call stacks :

The toplogy XML file exists but has invalid XML. Returning 0 machines. System.InvalidOperationException: There is an error in XML document (3, 4). ---> System.Xml.Schema.XmlSchemaValidationException: The required attribute 'FullyQualifiedDomainName' is missing.   
 at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(XmlSchemaValidationException e, XmlSeverityType severity)   
 at System.Xml.Schema.XmlSchemaValidator.CheckRequiredAttributes(SchemaElementDecl currentElementDecl)   
 at System.Xml.Schema.XmlSchemaValidator.ValidateEndOfAttributes(XmlSchemaInfo schemaInfo)   
 at System.Xml.XsdValidatingReader.ProcessElementEvent()   
 at System.Xml.XsdValidatingReader.Read()   
 at System.Xml.XmlReader.ReadStartElement()   
 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderFarmTopology.Read3_FarmTopology(Boolean isNullable, Boolean checkType)   
 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderFarmTopology.Read4_FarmTopology()     -
 -- End of inner exception stack trace ---   
 at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)   
 at Microsoft.Office.Web.Apps.Environment.WacServer.XmlReaderWriter.ReadStructuredDataFromXml[T](String filePath, String schemaFile)   
 at Microsoft.Office.Web.Apps.Environment.WacServer.LocalFarmTopology.Refresh()

ServiceInstanceFinderAdapter.FindAllServiceInstances() threw an exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.   
 at Microsoft.Office.Web.Apps.Environment.WacServer.AFarmTopology.GetMachine(String machineName)   
 at Microsoft.Office.Web.Apps.Environment.WacServer.WSServiceInstanceFinderAdapter..ctor()     -
 -- End of inner exception stack trace ---   
 at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)   
 at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)   
 at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)   
 at System.Activator.CreateInstance(Type type, Boolean nonPublic)   
 at Microsoft.Office.Web.Common.EnvironmentAdapters.HostEnvironment.LoadAdapterInstance(AdapterLoadInformation adapterInfo, Boolean readAppConfigOnly)   
 at Microsoft.Office.Web.Common.EnvironmentAdapters.HostEnvironment.AdapterLoadInformation`1.<>c__DisplayClass17.<BuildInstance>b__16()   
 at System.Lazy`1.CreateValue()   
 at System.Lazy`1.LazyInitValue()   
 at Microsoft.Office.Web.Common.EnvironmentAdapters.HostEnvironment.get_ServiceInstanceFinderAdapter()   
 at Microsoft.Office.Web.Common.ServiceInstanceFinder.RefreshList(Object state) 

After thinking about it turned out that the FullyQualifiedDomainName in the topology.xml archive in C:\ProgramData\Microsoft\OfficeWebApps\Data\FarmState at OWA server. Please check also if the HEALTH status is set to "Healthy" if not change it from "Unhealthy" to "Healthy".

1. Modify your OWA farm topology.xml to below:

<?xml version="1.0" encoding="utf-8"?>
<FarmTopology xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="https://schemas.microsoft.com/office/services/WacServerTopology.xsd">
  <Machine Health="Healthy" LastHealthUpdate="2014-06-09T10:43:31.1131267Z" Name="IO-OWA" FullyQualifiedDomainName="IO-OWA.MyDomain.COM" Id="81df187e8a034557b878b7a181404f1c">
    <Role>WordBackEnd</Role>
    <Role>FrontEnd</Role>
    <Role>PowerPointBackEnd</Role>
    <Role>ExcelBackEnd</Role>
  </Machine>
</FarmTopology>
</FarmTopology>

2. Restart your OWA server
3. Check if you can browse any document using OWA

Enjoy!!

Héctor Calvarro Martín. SharePoint Dev/Core. EMEA Premier Field Engineer.

Comments

  • Anonymous
    October 18, 2014
    Hey Hector, Have tried this but WAC just overwrites the XML file on restart and the same issue persists. This looks like a serious flaw in the program at this point that it rewrites its own topology file in an erroneous manner.
  • Anonymous
    October 19, 2014
    Thx Gouranga.In my case it wasn't changed when I restarted. However I may say I was doing a proof of concept and I didn't do a lot with that environment.Do you have Premier Support? I recommend you raise a ticket to double check it with one of my colleagues as I don't have my environment anymore.THXKind Regards.
  • Anonymous
    March 26, 2015
    Thanks Héctor, this worked for me in on a WAC server experiencing the issue. Do you have any ideas as to how this happens? I'm assuming by the error that the FullyQualifiedDomainName property must exist otherwise it won't work and that if I have a working WAC server at some point this must have existed. What would remove this property?