Sitecore Azureに新規の環境ファイルを追加する方法


説明

Sitecore Azureアプリケーションから、以前に追加した環境ファイルと同じ名前の環境ファイルを新規に追加すると、Sitecore Azureで下記のエラーが出力される場合があります。このエラーが発生すると、これ以降のデプロイが正常に動作しなくなる可能性があります。この問題は、Azureモジュール3.0以降のバージョンで発生します。

スタック トレースのエラーの例:

例1:

Failed to initialize environment file Environment.xml 
System.InvalidOperationException: There is an error in XML document (32, 26). ---> System.Xml.XmlException: Data at the root level is invalid. Line 32, position 26. 
  at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() 
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent() 
  at System.Xml.XmlReader.ReadEndElement() 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEnvironmentDataStorage.Read2_EnvironmentDataStorage(Boolean isNullable, Boolean checkType) 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEnvironmentDataStorage.Read3_EnvironmentDataStorage() 
 
--- End of inner exception stack trace --- 
  
  at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinition.GetEnvironmentDataStorage(String filePath) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinition..ctor(String filePath) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinitions.Initialize()

例2:

ERROR Sitecore.Azure Failed to initialize environment file Environment.xml 
Exception: System.InvalidOperationException 
Message: There is an error in XML document (32, 26). 
Source: System.Xml 
  at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinition.GetEnvironmentDataStorage(String filePath) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinition..ctor(String filePath) 
  at Sitecore.Azure.Configuration.Environments.EnvironmentDefinitions.Initialize() 
 
Nested Exception 
 
Exception: System.Xml.XmlException 
Message: Data at the root level is invalid. Line 32, position 26. 
Source: System.Xml 
  at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() 
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent() 
  at System.Xml.XmlReader.ReadEndElement() 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEnvironmentDataStorage.Read2_EnvironmentDataStorage(Boolean isNullable, Boolean checkType) 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderEnvironmentDataStorage.Read3_EnvironmentDataStorage()

解決策

Sitecore Azureに新規の環境ファイルを追加する推奨の方法につきましては、以下の通りです。

  1. /Website/App_Data/AzureEnvironmentsディレクトリ配下の古いEnvironmentファイルを削除します。

     

    :フォルダへのパスは、 /Website/App_Config/Include/Sitecore.Azure.configファイルのAzure.EnvironmentsPath設定で設定されます。
  2. Sitecoreのアプリケーション プールをリサイクルするか、Internet Information Services (IIS)をリセットします。
  3. 新規の環境ファイルをSitecore Azureアプリケーションから追加します。

Sitecore Azureで新規に作成された環境ファイルを以前のデプロイで使用するには、次の手順を実施してください:

  1. Content Editorにて、/sitecore/system/Modules/Azure/<Environment>アイテムを変更します。
  2. 新規のEnvironmentファイルの<EnvironmentId>要素の値をEnvironment IDフィールドに挿入し、変更を保存します。
  3. Sitecoreのアプリケーション プールをリサイクルするか、Internet Information Services (IIS)をリセットします。

重要:Sitecoreライセンス ファイルはすべてのSitecore Azureの環境ファイルに紐づいているため、SitecoreソリューションのSitecoreライセンスを更新する必要があります。