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);
這裏是問題:
- 上面的代碼不會返回任何TermStores,即計數爲零
如果我請從以下PowerShell腳本相同的命令提示符下,我在計數中得到1個TermStore。
$site = new-object Microsoft.SharePoint.SPSite("https://mysite") $session = new-object Microsoft.SharePoint.Taxonomy.TaxonomySession($site) $session.TermStores.Count
我曾嘗試以下:
- 我的託管元數據應用程序代理是默認代理組的一部分
- 爲託管元數據服務管理員配置正確
- 託管元數據服務的權限配置正確
- 託管元數據應用程序池場帳戶
- 下運行修改上面的代碼下提升的權限 運行
奇怪的是,第一個代碼塊上面並沒有檢索到任何TermStore(S)時作爲編譯可執行文件並從在服務器場憑據下運行的命令窗口調用。在同一個窗口中,我可以複製和粘貼等效的PowerShell腳本的第二塊,並讓它運行!
另外,這個問題只發生在我們的生產環境中。相同的可執行文件在我們的DEV,TEST和Pre Prod環境中成功運行。
在這個階段的任何幫助將不勝感激。
從powershell調用Termstore時,我們遇到過類似的問題。我們還沒有弄清楚爲什麼,但是通過編程方式向管理termstore頁面發出http請求似乎喚醒了它,然後我們可以從中獲取數據。 – 2012-01-30 15:57:44
今天剛剛變得陌生。 我們將EXE代碼移植到PowerShell,並且今天它成功運行。 我們仍然不知道爲什麼EXE失敗。一旦我們完成了我們的發佈,我們可能會回來做一些進一步的診斷,稍後我會更新線程。 – 2012-01-30 19:13:57
只是一個想法,難道你沒有運行該exe作爲64位應用程序? – 2012-01-31 08:12:19