2011-05-06 55 views
1

我在同一個虛擬機上的兩個不同的虛擬目錄上設置了dev和prod環境,並且遵循Configuring Multiple WMS Instances嘗試並正確設置它們。他們似乎工作正常,因爲我可以看到基於連接到它們的客戶端的工作流實例被保存在適當的環境中。問題出現在嘗試查看IIS管理器中的持久實例。我收到以下錯誤:Windows Server AppFabric配置的多個實例

IIS Error Displayed when trying to look at persisted instances

Error message presented when clicking on "Error(s) encountered" link

(*我appologize,我不知道怎麼上傳圖片直接進入這個帖子*)

相關的配置文件我有如下:

默認的Web.Config

<microsoft.applicationServer> 
    <monitoring lockElements="bulkCopyProviders, collectors"> 
     <bulkCopyProviders> 
      <bulkCopyProvider providerName="System.Data.SqlClient" type="Microsoft.ApplicationServer.Monitoring.EventCollector.SqlServerBulkCopy, Microsoft.ApplicationServer.Monitoring, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </bulkCopyProviders> 
     <collectors> 
      <collector name="" session="0"> 
       <settings retryCount="5" eventBufferSize="10000" retryWait="00:00:15" samplingInterval="00:00:05" aggregationEnabled="true" /> 
      </collector> 
     </collectors> 
     <default enabled="true" connectionStringName="ProductionApplicationServerMonitoringConnectionString" monitoringLevel="HealthMonitoring" /> 
    </monitoring> 
    <persistence> 
     <instanceStoreProviders lockItem="true"> 
      <add name="SqlPersistenceStoreProvider" storeProvider="Microsoft.ApplicationServer.StoreProvider.Sql.SqlWorkflowInstanceStoreProvider, Microsoft.ApplicationServer.StoreProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" storeControlProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Control.SqlInstanceControlProvider, Microsoft.ApplicationServer.StoreManagement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" storeQueryProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Query.SqlInstanceQueryProvider, Microsoft.ApplicationServer.StoreManagement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </instanceStoreProviders> 
     <workflowManagement> 
      <workflowManagementServiceInstances lockItem="true"> 
       <workflowManagementServiceInstance name=""> 
        <instanceStores> 
         <instanceStore name="productionSqlPersistenceStore" location="Workflows.Prod" /> 
        </instanceStores> 
       </workflowManagementServiceInstance> 
       <workflowManagementServiceInstance name="Dev"> 
        <instanceStores> 
         <instanceStore name="devSqlPersistenceStore" location="Workflows.Dev" /> 
        </instanceStores> 
       </workflowManagementServiceInstance> 
      </workflowManagementServiceInstances> 
     </workflowManagement> 
     <instanceStores> 
      <add name="devSqlPersistenceStore" provider="SqlPersistenceStoreProvider" connectionStringName="ApplicationServerWorkflowInstanceStoreConnectionString" /> 
      <add name="productionSqlPersistenceStore" provider="SqlPersistenceStoreProvider" connectionStringName="ProductionApplicationServerWorkflowInstanceStoreConnectionString" /> 
     </instanceStores> 
    </persistence> 
    <hosting> 
     <serviceManagement endpointConfiguration="ServiceManagementNetPipeEndpoint" enabled="true" authorizedWindowsGroup="AS_Administrators" /> 
    </hosting> 
</microsoft.applicationServer> 
<connectionStrings> 
    <add connectionString="BigSecret" name="ApplicationServerMonitoringConnectionString" /> 
    <add connectionString="BigSecret" name="ApplicationServerWorkflowInstanceStoreConnectionString" /> 
    <add connectionString="BigSecret" name="ProductionApplicationServerMonitoringConnectionString" /> 
    <add connectionString="BigSecret" name="ProductionApplicationServerWorkflowInstanceStoreConnectionString" /> 
</connectionStrings> 

生產的Web.Config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
     <protocolMapping> 
      <remove scheme="net.pipe" /> 
     </protocolMapping> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior> 
        <serviceMetadata httpGetEnabled="false" /> 
        <serviceDebug includeExceptionDetailInFaults="false" /> 
        <sqlWorkflowInstanceStore instanceCompletionAction="DeleteAll" instanceEncodingOption="None" instanceLockedExceptionAction="NoRetry" connectionStringName="ProductionApplicationServerWorkflowInstanceStoreConnectionString" hostLockRenewalPeriod="00:00:30" runnableInstancesDetectionPeriod="00:00:05" /> 
        <workflowInstanceManagement authorizedWindowsGroup="AS_Administrators" /> 
        <workflowUnhandledException action="AbandonAndSuspend" /> 
        <workflowIdle timeToPersist="00:00:00" timeToUnload="00:01:00" /> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
    <microsoft.applicationServer> 
     <monitoring lockElements="bulkCopyProviders, collectors"> 
      <default enabled="true" connectionStringName="workflowStoreConnectionString" monitoringLevel="HealthMonitoring" /> 
     </monitoring> 
     <persistence> 
      <instanceStores> 
       <remove name="defaultSqlPersistenceStore" /> 
       <add name="defaultSqlPersistenceStore" provider="SqlPersistenceStoreProvider" connectionStringName="workflowStoreConnectionString" /> 
      </instanceStores> 
     </persistence> 
     <hosting> 
      <serviceManagement endpointConfiguration="ServiceManagementNetPipeEndpoint" enabled="false" /> 
     </hosting> 
    </microsoft.applicationServer> 
    <connectionStrings> 
     <add connectionString="BigSecret" name="workflowStoreConnectionString" /> 
    </connectionStrings> 
</configuration> 

開發的Web.Config - 同生產,但具有不同的連接字符串

在解決錯誤消息,並能夠查看任何幫助持續的實例表示讚賞。 TIA。 JH

回答

1

原來,這個問題是由於msi安裝程序沒有正確運行sql腳本的結果,失敗並因此丟失了一些表。手動重新運行腳本(位於C:\ windows \ System32 \ AppFabric \ Schema中的Create_Persistence_Schema.sql,Create_Persistence_Logic.sql,Create_Monitoring_Schema.sql和Create_Monitoring_Logic.sql)糾正了此問題。