解決問題的辦法: “FileNotFoundException” 與我功能接收器.

我正在研究一種功能上個星期,會將一些事件接收器添加到特定清單實例. (我在博客上有點寫在這裡那清單接收器).

使用命令列, 我無法安裝該功能,沒有錯誤 (但請參閱下面的隱藏錯誤). 當我試圖部署上該網站的功能, MOSS 抱怨的"FileNotFoundException" 錯誤. 此博客條目描述怎麼解決的.

這是 MOSS 給我看了在 web 瀏覽器中的錯誤:

功能 ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ 不安裝,因為載入的事件接收器程式集"xyzzyFeatureReceiver_0" 失敗: System.IO.FileNotFoundException: 未能載入檔或程式集 xyzzyFeatureReceiver_0’ 或它的一個依賴項. 系統無法找到指定的檔.
檔案名稱: ' xyzzyFeatureReceiver_0’
在 System.Reflection.Assembly.nLoad(程式集名稱的檔案名, 字串的代碼庫, 證據 assemblySecurity, 大會 locationHint, StackCrawlMark& stackMark, 布林 throwOnFileNotFound, 布林 forIntrospection)
在 System.Reflection.Assembly.InternalLoad(程式集名稱 assemblyRef, 證據 assemblySecurity, StackCrawlMark& stackMark, 布林 forIntrospection)
在 System.Reflection.Assembly.InternalLoad(字串 assemblyString, 證據 assemblySecurity, StackCrawlMark& stackMark, 布林 forIntrospection)
在 System.Reflection.Assembly.Load(字串 assemblyString)
在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
警告: 程式集綁定日誌記錄被關閉.
要啟用程式集綁定失敗日誌記錄, 設置註冊表值 [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD 值) 自 1.
請注意: 有一些與程式集綁定失敗日誌記錄關聯的性能損失.
若要關閉此功能, 刪除註冊表值, [HKLMSoftwareMicrosoftFusion!EnableLog].

解決 Windows SharePoint 服務的問題.

我知道如何故意導致該錯誤: 不在 gac 中安裝程式集. 但, 它是在 gac 中. 我通常將程式集安裝到 gac 中通過將它們拖入 c:\使用 windows 資源管理器的 windowsassembly 資料夾. 我從來 100% 舒適這樣做,因為我一直以為那 gacutil 存在的理由 … 所以我試過了. 它沒有區別.

互聯網中搜索的結果,我發現這篇文章: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

海報發生了將使用的相同的根位的代碼 (從這裡面 WSS 本書從該清單中) 所以這是一個充滿希望的跡象. 不過, 裝飾與大會的建議 [大會: ] 指令對我沒有意義. 不管怎樣,我還是把它嘗試,右. 它沒有區別.

然後我注意到我的類定義是不公開. 我將它公開並無差異.

下一次, 去了啟用"程式集綁定失敗日誌的麻煩" (之後的有益的和準確的說明提供) 這是在哪裡,事情開始變得有趣. 該日誌顯示我運行時到處搜索,該伺服器上為我的程式集. 它甚至似乎在尋找它在我的藥櫃. 但 … 它不會為它在 gac 中搜索.

我穿上我冬季夾克和去再次搜索互聯網,發現有人也有這問題. 在這個帖子中的冗長討論彼得斯掉到什麼和我找不到解決方案.

我將我的程式集移動到日誌聲稱它搜索並多一點進步的地方之一. 一個新的錯誤,在瀏覽器中嘗試啟動該功能時我得到現在工作:

未能從程式集"xyzzyFeatureReceiver_0"創建功能接收器物件, 鍵入"Conchango.xyzzyFeatureReceiver" 為功能 b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: 值不能為空.
參數名稱: 類型
在 System.Activator.CreateInstance(類型類型, 布林非公開)
在 System.Activator.CreateInstance(類型類型)
在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

解決 Windows SharePoint 服務的問題.

互聯網的一個上次去的時候!

這次我發現, 不出所料, 苔蘚發出此錯誤,因為程式集不是 GAC 中.

我想要得到的東西這積極並嘗試覺得很驕傲我創建了 MSIL 程式集的逃犯, 但它不工作. 我只是平原惱火. 我發現自己喃喃自語"雞還是先有蛋" 根據我的呼吸.

我最後決定平底船. 我創建一個完全新的專案和複製/粘貼到這個新專案從 incredible-cloaked-from-the-GAC-assembly 非工作專案在代碼. (我去找叫什麼像"從程式集綁定如果安裝到 GAC 中隱藏一個生成標誌" 但找不到一個).

我安裝功能,並將其啟動和 … 它的工作! 所以, 這一切之後, 我基本上已經到 ' 重新開機’ 我的專案. 這就是我為什麼討厭的電腦的另一個原因.

我確實學到一些有用的這. 以前安裝過整天都使用 stsadm 命令列功能和已使用"-力" 出於習慣選項. 因為某些原因, 我沒有使用-force 選項,當你安裝了新的專案. 這一次, 我實際上做了, 真正忘了將這個新專案的程式集複製到 gac 中. 作為一個結果, 收到了"FielNotFoundException" 錯誤. 這一次, 我從 stsadm 弄, 沒有,當我試著啟動通過 web 瀏覽器功能. 所以, -力事實上是扮演兩個角色. 它允許您重新安裝現有的功能. 它還允許您將不能工作在運行時通過抑制錯誤越野功能安裝. 它可能表示盡可能説明地方但永遠不會注意到了它.

</結束>

Technorati 標籤: ,

周日滑稽: 返回頁首 10 煩擾你的妻子的方法

  1. 當你知道已經有足夠在冰箱裡多買西蘭花.
  2. 去跑步. 冷靜下來. 脫掉乾淨的枕套和替換 t 恤. 蓋上乾淨的枕套.
  3. 開車的時候, 問是否我們應走錯了路一條單行道.
  4. 為 15 年, 每個星期天,你妻子建議去博物館, 上周日的博物館是開放的表示驚訝.
  5. 為 15 年, 偶爾在周日建議去當地的書店. 表示驚訝,也不開放,周日的 (多謝 藍色的法律!).
  6. 使用 20 要做點 3 輪到點.
  7. 放在陰涼秋天午後, 走進房間,打開空調. 抱怨,真冷. 當妻子說, "然後你為何轉身, 傻" 起床,把它關掉, 抓住她在沙發上溫暖的位置. 如果她還沒有意識到你的積分沒有它直到很久以後.
  8. 開放美味的白色長鰭金槍魚罐頭,吃了它可以直接從, 躺在床上, 在晚上.
  9. 走進了廚房,而妻子正在吃晚飯, 開放餐具抽屜和用具擺佈直到妻子的尖叫聲, "你看什麼!"
  10. 在收到新的名片, 偷偷地將它們放在房子周圍所有: 在床底下, 在枕套, 內杯咖啡, 在她的錢包裡, 在上衣口袋裡, 車廂手套, 食品儲藏室 — 任何你能想到的地方.
  11. 你的妻子寫博客條目.
  12. 醒來.
  13. 當走在大街上的紐約城, 警惕的"脆皮" 地面上的物件. 銘記你的妻子特別恐懼, 伸手去一個備份和問, "嗯, 我不知道那就是?" (準備好為妻子身上摔你好像她是一個特工保護總統從一名狙擊手或你會發現自己平躺在你的背在人行道上).
  14. 開車兩次圍著停車場尋找空間. 你知道你已經真正打薪酬污垢的時候你在後座的兒子大喊, "哦不! 他正在做它 再次!"
  15. 寫"頂 10" 清單不包含 10 專案.

===

獎金的妻子笑話:

兩個男同事一起出去吃午飯. 其中之一告訴對方, "我讓松尷尬下意識的說那天晚上。"

"是我口誤? 什麼?"

"好吧, 當我們吃完, 女服務員走過來,問我們喜不喜歡我們的飯菜. 我的意思說, ' 我愛雞胸肉’ 但卻說 '我愛你的乳房'. 所以窘了。"

"啊," 他的同事回答. "我有同樣的事情發生在我身上這個週末和我的妻子. 我們正在吃的早餐,本來想請她轉達黃油, 但相反我尖叫著她, ' 你毀了我的生活!’"

</結束>

Technorati 標籤:

事件 ID 1023: “Windows 無法載入 DLL MSSCNTRS 的可擴展計數器”

更新 (04/08/08): 我似乎已經解決了這個問題. 從命令列, 我跑"c:\windowssystem32lodctr /R" 作為每一個條目淺談歡迎使用安裝問題,那似乎已經為我解決了.

我注意到最近, 我的桌面/伺服器風扇永遠不會關閉. 我知道它用來關閉. 我花了點時間檢查出來注意 VMware 進程運行一致 20% 在一個 CPU 的利用率. 我檢查事件日誌,看到這些發生數十次每分鐘應用程式日誌中的錯誤:

Windows 無法載入 DLL UGatherer 的可擴展計數器, 資料節中的第一個 dword 值是 Windows 錯誤代碼.

Windows 無法載入 DLL UGTHRSVC 的可擴展計數器, 資料節中的第一個 dword 值是 Windows 錯誤代碼.

Windows 無法載入 DLL MSSCNTRS 的可擴展計數器, 資料節中的第一個 dword 值是 Windows 錯誤代碼.

如果我鑽到這些消息之一的詳細資訊, 我得到了這:

源: Perflib

類型: 錯誤

類別: 無

事件 ID 1023

做了一些研究和一些跡象表明,這可能是在進入 Dll 問題方面的許可權問題. 把玩了一下那東西,但不是能影響事情以積極的方式,所以我放棄了,.

VMware 把我困擾了關於執行相當一段時間的更新, 所以我給記下來我已經安裝的版本 (顯然"1.0.1 build 29996") 並更新. 這把我升級到 v1.04. 不幸的是, 未解決問題.

我可以停止瘋狂的去我的應用程式日誌,如果關閉了名為"VMware 授權服務"的服務的消息數. 這阻止我使用 VMware 軟體, 所以 … 不是很好的選擇.

主機作業系統是 Windows XP 64 位.

我不認為這總是發生了, 但我不記得,它可能會導致任何特定事件.

這就是為什麼我討厭的電腦.

</結束>

Technorati 標籤:

快速 & 容易: 重命名已上載的檔,使用事件接收器通過 SharePoint 物件模型

更新: 這工作,但有很大的局限性,介紹了在評論中. 這可能仍然是有用的一些基本狀況.

更新 2: 我當前的專案中, 使用者始終上載檔. 作為一個結果, 不會遇到一個問題 MS Word 正在運行,並且認為它重命名該檔. 我也遇到一個問題, "修改該檔的其他人" 並解決了這個問題通過一個簡單的信號類型標誌. 使用者需要從其預設值的元資料欄位更改為別的東西. Itemupdated() 在實際執行重命名之前,自那時以來,接收器看上去為一個有效的值, 我沒有任何問題. 您的里程可能會發生變化.

我有一個用戶端要求更改上載到以符合特定的命名約定的特定文件庫的檔案名稱. 該 API 並不提供"重命名()" 方法. 相反, 我們使用 "MoveTo(…)". 這裡是代碼的最少來完成這位:

 公眾 重寫 無效 ItemAdded(SPItemEventProperties 屬性)
        {
            SPFile f = 屬性。ListItem.File;

            f.MoveTo(屬性。ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

唯一麻煩的地方是"屬性。"ListItem.ParentList.RootFolder.Url. MoveTo() 方法需要一個 URL. 那搗碎的字串點我到我當前的文件庫的根資料夾中. 這讓我們避免任何硬編碼在我事件接收器.

這是一個更有用的版本,做同樣的事, 但將該檔的名稱分配給"標題":

 公眾 重寫 無效 ItemAdded(SPItemEventProperties 屬性)
        {
            DisableEventFiring();

            // 將此專案的標題分配給檔本身的名稱.
 // 請注意: 此項工作分配必須發生之前我們修改檔本身.
 // 調用 update() SPFile 似乎無效中的屬性
 // 某種意義上.  "標題的更新" 失敗之前,更改 (和更新() 調用)
 // 在更改前遷往該檔案名稱.
            屬性。ListItem["標題"] = 屬性。ListItem.File.Name;

            屬性。ListItem.Update();

            SPFile f = 屬性。ListItem.File;

            // 獲取檔的副檔名.  我們稍後需要,.
 字串 spfileExt = 新增功能 FileInfo(f.Name).擴展;

            // 重命名的檔的清單項的 id,並使用檔副檔名來保持
 // 它不變的部分.
            f.MoveTo(屬性。ListItem.ParentList.RootFolder.Url +
                "/" + 屬性。ListItem["ID"] + spfileExt);

            // 犯下移動.
            f.Update();

            EnableEventFiring();
        }

論壇討論: 執行非平凡蘚類環境中的最佳做法法規遵從性

研究員, "標記", 潛在有趣的新聞群組討論,重點"建立優秀 SharePoint 治理從一開始已啟動" 為 35,000 使用者環境.

這裡是討論: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

在流行音樂上和貢獻!

</結束>

自訂操作 URL 不會顯示為新功能

我還在用手製作我功能 XML 檔,因為它是對我都很新的習慣. 我不想依賴一個前端工具的事情我不懂 (他說,他寫道: 使用一個工具,他不明白一個博客條目).

今天, 我正要向網站設置添加自訂操作,但它不會露面. 我安裝的功能,看它在網站功能, 但啟動時 (無錯誤) 它根本不會顯示在下拉式功能表中.

終於實現了我拼寫錯誤"SharePoint" 在位置屬性 <CustomAction> 節點. 這是壞的 elements.xml 檔:

<?xml 版本="1.0" 編碼="utf-8" ?>
<元素 xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 Id="SiteActionsToolbar"
 GroupId="SiteActions"
 位置="Microsoft.Sharepoint.StandardMenu"
 序列="100"
 標題="您好 !!"
 說明="通過一種功能添加的自訂功能表操作."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction Url="http://www.xyzzy.com"/>

  </CustomAction>
</元素>

良好:

<?xml 版本="1.0" 編碼="utf-8" ?>
<元素 xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 Id="SiteActionsToolBar"
 GroupId="SiteActions"
 位置="Microsoft.SharePoint.StandardMenu"
 序列="100"
 標題="您好 !!"
 說明="通過一種功能添加的自訂功能表操作."
    >
    <UrlAction Url="http://www.xyzzy.com"/>
  </CustomAction>
</元素>

那人花了我兩個多小時才弄清楚🙂

我感到安慰的是,在將來某一天, 我能說的信念, "回來的一天, 我不得不走在雪地裡山三英里 (赤腳!) 若要部署到苔蘚的自訂功能. 你的孩子, 你不知道你有多麼容易! 下車我的草坪!"

不能等.

</結束>

Technorati 標籤: ,

博客統計

我想有些人可能會感興趣我的博客統計. 你可以用我作為一個基準來比較你自己.

我在 windows 上活空間運行我的博客. 他們收集統計資訊對我來說,我不知道任何辦法控制的. 它是好的它走得一樣長遠, 但它是相當有限的我不能做很多與它的實際分析. 我會愛, 舉個例子, 必須能夠生成清單的我最經常命中的職位,但不是能沒有,讓人望而卻步的手動過程. 如果有人知道更好, 請告訴我.

生活的空間狀態告訴我: 總點擊數為一天的, 自從天零的周和總點擊總點擊. 它還告訴我什麼人做去我的博客 (例如:. 谷歌, MSDN 論壇連結, 等).

在某些方面, "擊中了" 很明顯. 如果你現在讀到這句話, 您幾乎可以肯定已經註冊為單一的命中.

RSS 是有點讓人費解. 在另一隻手上, 我整天都查看個別的 RSS 點擊. 但, 我還看到 RSS"掃蕩". 掃描是當我看到 20 或 30 都在一個或兩個的第二個視窗內的 RSS 點擊. 我假定這些自動化的東西,像谷歌檢查我的網站上, 也許其他人的瀏覽器 … 不確定. 他們是肯定某種自動化過程. 我不能告訴, 然而, 我總點擊次數的多少自動化和多少的另一邊有一個實際的人. 我想至少 100 每一天的點擊率都被自動.

到數位!

我 7 月 27 日寫道: 我第一次的博客條目, 2007.

我寫了大約 60 自那時以來的博客文章, 更多 50 其中直接涉及到 SharePoint.

我開始來跟蹤我命中在日常基礎上試算表中的在 9 月底.

每月開始:

第一周: 總點擊數
10 月 1,234
11 月 2,162
12 月 3,071
1 月 2008 4,253

總按月

個月 總點擊數
10 月 6,620
11 月 11,110
12 月 13,138

高水位標記

類型 總點擊數
最好的一天 958
最好一周 4,253
總點擊數因為天零 42,438

我很感興趣其他人’ 統計資料. 如果你願意分享你的意見, 請不要!

</結束>

Technorati 標籤:

星期天的早晨搞笑: “是, 是, 是. 布拉赫, 布拉赫, 等等。”

大約六年前, 我四歲的兒子和我在樓上看 探索頻道 "鯊魚襲人事件" 特別 (可能這一). 他還很年輕,在點和我總是很擔心,他可能會看到像這樣的節目和他可能如何對待它. 我不想他發展, 舉個例子, 任何 特殊的恐懼 水的或 亂說什麼不恰當 對他的朋友,並可能導致垮掉他的寶寶的朋友網路.

發現處理這些各種各樣的學科很好. 它不是關於創建 恐懼的東西, 而是要表明鯊魚攻擊人類是多麼不同尋常.

所以, 我們在看它,還有涉及一個小女孩這一特別是恐怖襲擊. 如發現正在攻擊的戲劇, 我的兒子 (誰會一直在極其緊張反正), 非常興奮. 我做一些關於鯊魚攻擊的人是多麼不同尋常的聲音, 和這個可憐的女孩必須難過. 我試圖解釋人從這些事件中恢復,並為它變得更強. 不過, 我誤解了他的激動. 他並不擔心這個女孩根本. 相反, 在他的手在鼓掌的同時, 他告訴我, "鯊魚愛它! 太棒了. 真棒極了. 其夢想成真!"

我以為這是搞笑, 但也是令人非常不安. 一方面, 我很高興 — 甚至有點驕傲 — 他可能有強烈的同情心感情, 跨物種,雖然他們可能是. 作為人類, 我們需要發展我們"移情的肌肉" 所以說,否則你就會像 這傢伙 🙂 另一方面, 他感覺跨物種移情對當時表現出的行為不利於自己的物種. 講述人使用"范式"一詞時,與這掙扎著,要了真的. 我的兒子身上,並問我什麼意味.

這不是這樣一個簡單的詞來描述到四歲, 但我給了它一試. 當我想到"范式"一詞, 湯瑪斯.庫恩 是從來不會遠離我的想法. 我讀了 科學革命的結構拉斐特 而更好或更糟, "范式一詞" 懷孕與額外的意思,對我來說. (有點像 word"接觸" 在聆訊後電影電話語音告訴我在我能看見 那部電影 [我以為這本書是更好]; 我總是對自己說, "接觸!" 每當我看到或聽到有人說"連絡人").

不管怎麼說, 我想向他解釋了一個 Kuhnian 的定義, 這是思想的"一個歷史運動" 它是思維的"與大量內置的假設,都難以逃脫的人住在那個時候方式。" 答案是肯定的, 你不能說到四歲, 所以我想先後定義成小碎片,而是為自己感到驕傲的感覺,一樣那麼. (我只是 知道 在學院外的人會關心我讀過庫恩!).

他打斷我的時候,到任務氣候變暖,要我只. 揮舞著他的手 我一般的方向 並從未考慮關閉另一個殘暴的鯊魚攻擊他的眼睛, 他只是說, "是的, 是, 是. 布拉赫, 布拉赫, 叭"。.

就這麼多 🙂

在那點, 我決定逃跑, 言辭上發言, 坐下來, 和喜歡看鯊魚攻擊人類與我的兒子.

</結束>

Technorati 標籤:

切換視圖視圖基於 InfoPath Form 中的使用者 ID

我們已開發 InfoPath 表單具有多個視圖,支援新員工 / 入職流程. 當公司雇傭的一個新的人, IT 部門和其他團體需要採取的行動 (設置工資單, 啟用對相應的應用程式的訪問, 找到一張桌子, 等). 我們使用表單,但表單的不同視圖為每個這些職能.

在這個公司, 在業務流程中所涉及大多數是人的精通 IT 的, 所以,當他們訪問的表單, 其預設視圖是一種"功能表" 查看與直接給他們的特殊功能的按鈕. 不過, 我們需要簡單化的新員工直接經理. 這個人不應該看到任何 IT 相關的東西. 事實上, 她應該看到的只是一個視圖表單的不會連選項以查看其他視圖.

在我們的案例, 直接經理的帳戶直接綁禮貌的形式 連絡人選擇器 (而我總是想叫"人員選取器" 因為某些原因).

步驟如下:

1. 在設計模式中, 轉到工具-> 表單選項-> 打開和保存.

2. 選擇"規則".

3. 創建一個新的規則,其操作是"切換以查看" 和其條件利用使用者名() 功能.

使用者名() 返回"簡單" 沒有域使用者名. 如果我用"domainpagalvin"的憑據登錄到 SharePoint, 使用者名() 返回"pagalvin".

連絡人選擇器提供一個連絡人資訊的三位. "AccountID" 部分是對於這種情況下最有用. 唯一讓這甚至有點挑戰的是,連絡人選擇器 (在我的環境無論如何) 返回的域和使用者 ID, 如在"domainpagalvin". 這阻止我們做直接的平等條件自 AccountID (""domainpagalvin) 永遠不會平等的使用者名() (""pagalvin).

我們可以繞過此使用"包含" 運算子: AccountID 包含使用者名().

我們可以採取它進一步和 pre 掛起一個硬式編碼域使用者名前面() 讓我們平等檢查和消除誤報的風險上的函數包含運算子.

我們將不得不真的像自動切換為其他基於 AD 安全性群組成員身份的使用者視圖. 舉個例子, 當"它分析的成員" 組訪問表單, 自動切換到 IT 分析視圖. 我們沒有時間來實現它, 但我首先想到的是創建一個 web 服務,會有像"IsMemberOfActiveDirectorySecurityGroup"的一種方法, 將它傳遞使用者名() 並返回返回 true 或 false. 有沒有人有任何其他嗎, 更多聰明的主意? 有任何 SharePoint 的函數,我們可以利用從 InfoPath 來做這個決定?

</結束>

Technorati 標籤:

意外地將代碼添加到 InfoPath 表單; 故意將其刪除

在表單上使用按鈕時, 我們經常添加規則. 從按鈕的屬性訪問規則編輯器.

快速點擊左右的時候, 它是很容易不小心點擊"編輯表單代碼" 而不是"規則 …".

我這麼做是第一次, 我取消代碼編輯器. 不過, 當我試圖同時以後有點發布表單, 它要求我發佈作為"管理員核准的表單範本 (先進的)". 我實際上並沒有做任何的程式設計和絕對不想經過不必要的審批過程. 我當時有點恐慌由於時間的限制. 繞過它, 我只是還原以前的備份,並持續. 我最近看了一些關於人們走進表單的 XML 來調整事情的博客帖子,害怕也要類似的東西.

今天, 再次做到. 這一次, 我我手上有多一點時間,發現你可以輕鬆地撤銷這.

轉到(G):

工具-> 表單選項-> 程式設計: "刪除代碼"

它不會比這更簡單.

</結束>

Technorati 標籤: ,