none
Exchange 2013访问ECP后台管理报500意外错误,该如何解决? RRS feed

  • 问题

  • 各位高手,最近不知道做了什么操作,访问ECP后台就显示“500意外错误”,但OWA就能正常访问,该如何修复?后台日志显示如何下错误:

    当前用户:“fang-sh.com/Users/admin”
    对 URL“https://mbx-2.fang-sh.com:444/ecp/default.aspx(https://mail2.fang-sh.com/ecp/)”的请求失败,出现以下错误:
    System.Configuration.ConfigurationErrorsException: “”(十六进制值 0x03)是无效的字符。 第 1 行,位置 1。 (C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\quarantine\web.config line 1) ---> System.Xml.XmlException: “”(十六进制值 0x03)是无效的字符。 第 1 行,位置 1。
       在 System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
       在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
       在 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
       在 System.Configuration.XmlUtil..ctor(Stream stream, String name, Boolean readToFirstElement, ConfigurationSchemaErrors schemaErrors)
       在 System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
       --- 内部异常堆栈跟踪的结尾 ---
       在 System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
       在 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
       在 System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
       在 System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName)
       在 System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index)
       在 System.Web.Configuration.RuntimeConfig.get_Authorization()
       在 System.Web.Security.UrlAuthorizationModule.IsUserAllowedToPath(HttpContext context, VirtualPath virtualPath)
       在 System.Web.SiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
       在 Microsoft.Exchange.Management.ControlPanel.EacSiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
       在 System.Web.StaticSiteMapProvider.GetChildNodes(SiteMapNode node)
       在 System.Web.XmlSiteMapProvider.GetChildNodes(SiteMapNode node)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateNavTree()
       在 Microsoft.Exchange.Management.ControlPanel._Default.OnLoad(EventArgs e)
       在 System.Web.UI.Control.LoadRecursive()
       在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
       在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
       在 System.Web.UI.Page.ProcessRequest()
       在 System.Web.UI.Page.ProcessRequest(HttpContext context)
       在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
       在 System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
       在 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
       在 System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
       在 System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName)
       在 System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index)
       在 System.Web.Configuration.RuntimeConfig.get_Authorization()
       在 System.Web.Security.UrlAuthorizationModule.IsUserAllowedToPath(HttpContext context, VirtualPath virtualPath)
       在 System.Web.SiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
       在 Microsoft.Exchange.Management.ControlPanel.EacSiteMapProvider.IsAccessibleToUser(HttpContext context, SiteMapNode node)
       在 System.Web.StaticSiteMapProvider.GetChildNodes(SiteMapNode node)
       在 System.Web.XmlSiteMapProvider.GetChildNodes(SiteMapNode node)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateDataContract(SiteMapNode sNode)
       在 Microsoft.Exchange.Management.ControlPanel._Default.CreateNavTree()
       在 Microsoft.Exchange.Management.ControlPanel._Default.OnLoad(EventArgs e)
       在 System.Web.UI.Control.LoadRecursive()
       在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
       在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
       在 System.Web.UI.Page.ProcessRequest()
       在 System.Web.UI.Page.ProcessRequest(HttpContext context)
       在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

    System.Xml.XmlException: “”(十六进制值 0x03)是无效的字符。 第 1 行,位置 1。
       在 System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
       在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
       在 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
       在 System.Configuration.XmlUtil..ctor(Stream stream, String name, Boolean readToFirstElement, ConfigurationSchemaErrors schemaErrors)
       在 System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
       在 System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
       在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
       在 System.Xml.XmlTextReaderImpl.ParseDocumentContent()
       在 System.Configuration.XmlUtil..ctor(Stream stream, String name, Boolean readToFirstElement, ConfigurationSchemaErrors schemaErrors)
       在 System.Configuration.BaseConfigurationRecord.InitConfigFromFile()

    未启用的功能信息: Features:[[Global.DistributedKeyManagement, False],[Global.GlobalCriminalCompliance, False],[Global.MultiTenancy, False],[Global.WindowsLiveID, False],[Eac.AllowMailboxArchiveOnlyMigration, True],[Eac.AllowRemoteOnboardingMovesOnly, False],[Eac.BulkPermissionAddRemove, True],[Eac.CmdletLogging, True],[Eac.CrossPremiseMigration, False],[Eac.DevicePolicyMgmtUI, False],[Eac.DiscoveryDocIdHint, False],[Eac.DiscoveryPFSearch, False],[Eac.DiscoverySearchStats, False],[Eac.DlpFingerprint, False],[Eac.EACClientAccessRulesEnabled, False],[Eac.GeminiShell, False],[Eac.ManageMailboxAuditing, False],[Eac.ModernGroups, False],[Eac.Office365DIcon, False],[Eac.OrgIdADSeverSettings, False],[Eac.RemoteDomain, False],[Eac.UCCAuditReports, False],[Eac.UCCPermissions, False],[Eac.UnifiedAuditPolicy, False],[Eac.UnifiedComplianceCenter, False],[Eac.UnifiedPolicy, False],[Eac.UnlistedServices, False],],  Flights:[],  Constraints:[[LOC, ZH-CN],[MACHINE, MBX-2],[MODE, ENTERPRISE],[PROCESS, W3WP],[USER, SERVER2@],[USERTYPE, BUSINESS],], IsGlobalSnapshot: False

    2015年1月9日 10:30

答案

  • 你好,

    根据你的描述,你使用admin帐户访问ECP界面,是指访问admin邮箱帐户的ecp界面,还是访问整个EAC管理控制台?

    如果是访问admin单个邮箱的ecp界面报错,请尝试将admin的邮箱迁移到其他数据库,看看是否有帮助;

    另外,根据下面的报错信息,请查看对应路径下的web.config文件中是否有报错中提到的无效字符“”,如果有多台服务器,请对比不同服务器上的web.config文件是否有差异。

    (C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\quarantine\web.config line 1) ---> System.Xml.XmlException: “”(十六进制值 0x03)是无效的字符。 第 1 行,位置 1。

    下面是我的测试环境中的web.config文件的具体内容,供你对比参考:

    <?xml version="1.0"?>
    <configuration>
      <location path="Quarantine.slab">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="EditQuarantineAdvFilter.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="QuarantineDetails.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="QuarantineSDO.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="ReleaseQuarantine.aspx">
        <system.web>
          <authorization>
            <allow roles="Release-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
    </configuration>

    谢谢!


    Niko Cheng
    TechNet Community Support

    • 已标记为答案 Jimmieyuan 2015年1月20日 10:42
    2015年1月13日 1:38
    版主

全部回复

  • exbpa 检查有什么问题?

    我看你在英文论坛中发了同样的帖子,请问你检查了你的ECP IIS 服务是否启动,重启服务器之后能够解决?

    2015年1月11日 2:58
  • 谢谢你的回复,应该和IIS无关,因为除了ADMIN以后其它普通用户全部可以登入ECP界面,英文论坛好像也没人了解情况
    2015年1月12日 1:41
  • 你好,

    根据你的描述,你使用admin帐户访问ECP界面,是指访问admin邮箱帐户的ecp界面,还是访问整个EAC管理控制台?

    如果是访问admin单个邮箱的ecp界面报错,请尝试将admin的邮箱迁移到其他数据库,看看是否有帮助;

    另外,根据下面的报错信息,请查看对应路径下的web.config文件中是否有报错中提到的无效字符“”,如果有多台服务器,请对比不同服务器上的web.config文件是否有差异。

    (C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp\quarantine\web.config line 1) ---> System.Xml.XmlException: “”(十六进制值 0x03)是无效的字符。 第 1 行,位置 1。

    下面是我的测试环境中的web.config文件的具体内容,供你对比参考:

    <?xml version="1.0"?>
    <configuration>
      <location path="Quarantine.slab">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="EditQuarantineAdvFilter.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="QuarantineDetails.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="QuarantineSDO.aspx">
        <system.web>
          <authorization>
            <allow roles="Get-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
      <location path="ReleaseQuarantine.aspx">
        <system.web>
          <authorization>
            <allow roles="Release-QuarantineMessage@R:Organization"/>
            <!-- Deny everyone else -->
            <deny users="*"/>
          </authorization>
        </system.web>
      </location>
    </configuration>

    谢谢!


    Niko Cheng
    TechNet Community Support

    • 已标记为答案 Jimmieyuan 2015年1月20日 10:42
    2015年1月13日 1:38
    版主
  • 你好 Niko

    谢谢你的答复,我的admin邮箱账户也是Exchange管理员账户,这个账户进入OWA界面是正常的,但打开OWA界面中的选项或直接访问ECP后台即报“500意外错误”,我也试图打开过WEB.CONFIG这个文件,但我用记事本打开后是乱码,我不知道你是用什么软件打开的,能否告知一下,谢谢

    2015年1月13日 2:29
  • 你好,

    我也是使用notepad打开的,另外wordpad也可以打开此文件,你可以尝试一下。

    如果还是乱码的话,你可以尝试将该文件复制到其他电脑上,看能否正常显示。

    谢谢!


    Niko Cheng
    TechNet Community Support

    2015年1月13日 3:11
    版主
  • 你好 Niko

    我试了多种操作系统打开都是乱码,notepad和wordpad都试过了也是乱码,有什么办法可以解决吗?这个乱码和ECP的错误会有关系吗?

    2015年1月13日 4:22
  • 你好 Niko,

    我发现ecp\quarantine\web.config这个文件打开是乱码,但是ecp\web.config这个文件却可以正常打开,而且二台MBX都是一样的情况,是乱码导致的ECP打开失败吗?

    2015年1月13日 4:38
  • 你好,

    目前无法断定就是这个乱码导致的,但是报错信息中提到当访问ecp时会用到这个文件,所以还是建议先将这个文件的乱码情况解决,看是否能解决问题。

    你可以尝试将你坏境中的该web.config文件做好备份,然后将我提供的代码复制并替换该文件,看是否有帮助。

    谢谢!


    Niko Cheng
    TechNet Community Support

    2015年1月13日 6:20
    版主
  • 你好 Niko

    我备份了这个文件,并且把里面的内容全部删除并粘贴你的代码进去,但还是报错,不知道是不是复制有问题,你能否把这个文件单独发送给我试一下呢?我的邮件地址:jimmieno_1@msn.com,万分感谢!

    2015年1月14日 3:29
  • 顺便再问一下,替换掉后需要把所有的EXCHANGE服务器重启吗?
    2015年1月14日 10:57
  • 你好,

    不需要重启服务器,但需要重启IIS。

    IISreset

    谢谢!


    Niko Cheng
    TechNet Community Support



    2015年1月15日 3:09
    版主
  • IIS都重启过了,仍然显示
    2015年1月15日 3:33
  •  Hi Niko

     谢谢你的帮忙,我重启了所有的Exchange服务器后终于恢复正常了!

    2015年1月20日 10:06
  • 你好,

    还请帮忙确认一下,你是在替换了web.config 文件后重启恢复正常了,还是说没有替换直接重启就回复正常了?

    谢谢!


    Niko Cheng
    TechNet Community Support

    2015年1月21日 8:32
    版主
  • 我替换了文件后并重启了所有EXCHANGE服务器后就正常了
    2015年1月22日 10:52