2012-01-28 76 views
2

概述 我觀察到一個非常奇怪的行爲,其代碼試圖從TaxonomySession中檢索TermStore。代碼如下所示:TermStore計數爲0

  using (SPSite mySite = new SPSite(url)) 
      { 
      TaxonomySession session = new TaxonomySession(mySite); 

      // Get all the TermStores associated with the provided site. 
      TermStoreCollection stores = session.TermStores; 
      Console.WriteLine(stores.Count); 

這裏是問題:

  1. 上面的代碼不會返回任何TermStores,即計數爲零
  2. 如果我請從以下PowerShell腳本相同的命令提示符下,我在計數中得到1個TermStore。

    $site = new-object Microsoft.SharePoint.SPSite("https://mysite") 
    $session = new-object Microsoft.SharePoint.Taxonomy.TaxonomySession($site) 
    $session.TermStores.Count 
    

我曾嘗試以下:

  1. 我的託管元數據應用程序代理是默認代理組的一部分
  2. 爲託管元數據服務管理員配置正確
  3. 託管元數據服務的權限配置正確
  4. 託管元數據應用程序池場帳戶
  5. 下運行修改上面的代碼下提升的權限
  6. 運行

奇怪的是,第一個代碼塊上面並沒有檢索到任何TermStore(S)時作爲編譯可執行文件並從在服務器場憑據下運行的命令窗口調用。在同一個窗口中,我可以複製和粘貼等效的PowerShell腳本的第二塊,並讓它運行!

另外,這個問題只發生在我們的生產環境中。相同的可執行文件在我們的DEV,TEST和Pre Prod環境中成功運行。

在這個階段的任何幫助將不勝感激。

+0

從powershell調用Termstore時,我們遇到過類似的問題。我們還沒有弄清楚爲什麼,但是通過編程方式向管理termstore頁面發出http請求似乎喚醒了它,然後我們可以從中獲取數據。 – 2012-01-30 15:57:44

+0

今天剛剛變得陌生。 我們將EXE代碼移植到PowerShell,並且今天它成功運行。 我們仍然不知道爲什麼EXE失敗。一旦我們完成了我們的發佈,我們可能會回來做一些進一步的診斷,稍後我會更新線程。 – 2012-01-30 19:13:57

+0

只是一個想法,難道你沒有運行該exe作爲64位應用程序? – 2012-01-31 08:12:19

回答

1

我們在測試環境中遇到了完全相同的問題。但是,我們的開發服務器正在按預期工作。我的同事能夠通過更新Microsoft支持中提供的修補程序來縮小問題範圍並解決問題。

以下是在研究該特定問題時可能遇到的修補程序和信息的詳細信息。

有關其他信息:

  1. http://chrisforbesblogs.net/2009/12/02/the-managed-metadata-service-or-connection-is-currently-not-available
  2. http://expectedexception.wordpress.com/2011/06/15/the-managed-metadata-service-or-connection-is-currently-not-available-the-application-pool-or-managed-metadata-web-service-may-not-have-been-started-please-contact-your-administrator/

請利弊在將任何修補程序更新到服務器之前,請先清除系統管理員希望這可以幫助您解決生產環境中的問題。