分類存檔: SharePoint 發展

竹日曆進行交互與 SharePoint 導致"時發生意外的錯誤"

今天, 我一直在使用竹的日曆 web 部件進行一些改進的協作環境. 這標準的中小農場與兩個負載平衡目送, 為索引的"應用程式伺服器",InfoPath 和群集的 SQL 後端.

用戶端安裝一些災害復原軟體上目送之一而導致網站集合中的特定網站的破碎 WFE. 每當負載平衡指著受影響的 WFE 和該網站, 使用者看到很大程度上空白的白色的螢幕,這句話"時發生意外的錯誤". 沒有其他資訊顯示, 只是那句.

他們問我要看看它. 我很容易複製的問題,然後加 ?內容 = 1 到 URL 的末尾. 這是學會他們使用竹 web 部件. 又回到頁面和現在, 突然, 它向我展示了一個很好的有序錯誤訊息:

image

我不知道發生了什麼,或者我做了什麼獲取要顯示其他比追加的控制的錯誤訊息 ?內容 = 1 位的查詢字串.

這可能是非常罕見的邊緣箱子,但如果你得到的消息, "出現意外的錯誤"去和添加 ?內容 = 1 到查詢字串,看看到底.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Technorati 標籤: ,

在 Microsoft.SharePoint.dll 上使用反射器

展鵬.NET反射器 邁克爾 · 布盧門塔爾 已經提供了 條關於通知和意見 ("哪些視圖時,可以使用創建警報 ?"), 這是對自身的優點感興趣. 不過, 甚至更樂於見到他是如何有條不紊地走通過使用紅門的.NET 反射的過程. 一步一步走, 他演示如何使用該工具跟蹤下來 SharePoint 如何確定是否在名單上的視圖應"subscribable" 好的詞 (他解釋得比我好得多 回复 ).

在此點在 SharePoint 時代, 你幾乎會是又聾又瞎,有沒有聽到或讀到使用該工具. 它擁有先進的東西和我自己的感覺是,它是在很多方面最後的工具. 不過, 如果你覺得你需要它,但真的不知道如何, 邁克爾的玉好像就這一主題的偉大教程.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Technorati 標籤: , ,

在日曆視圖中的日曆項進行排序

我使用日曆來跟蹤上某一天的小組討論. 我有兩個會話: 上午和下午. 我想要創建一個視圖,顯示上午舉行的會議,僅通過一個會話 ID 按字母順序列出. 這是有點棘手,完成 (除非我錯過了真正明顯的東西).

我可以輕鬆地創建篩選的視圖顯示只是那天的事件. 該日曆將顯示所有這些事件,如果他們都採取放在同一個小時, 它列出他們肩並肩在小時插槽中. 真棒. 最棘手的部分是,, 預設情況下, 它想要列出他們在 ID 格式. 所以, 如果添加"會話 02" 然後"會話 01" 到日曆, 它顯示他們這個順序 (e 小節, 會議 02 然後會話 01). 要按會話 ID 順序列出它們, 我以為,嘗試這些東西:

  1. 配置使用 web 使用者介面的視圖. 運氣不好. 沒有選擇以這種方式,對專案進行排序.

    因為那不工作, 我現在有希望是 CAML 查詢某個地方在那裡,讓我重寫排序. CQWP 讓我做出這種改變, 也許日曆也會?

  2. 編輯 web 部件, 找一個"出口" 函數和 … 鋸的聲音! 我不能匯出它的 XML. 沒有匯出選項.

    我還堅持希望可以找到,修改一些 CAML 查詢. 因為我不能匯出 web 部件, 這就使得 SharePoint 設計器.

  3. 我將日曆 web 部件添加到沙箱網站並打開該網站使用 SharePoint 設計器. 我看著 web 部件的標記,我找到自己在尋找什麼. 它已編碼的瘋狂, 但它的存在: "<ListViewXml …. >已編碼的瘋狂</ListViewXml>". 具體, 有此創業板:

<查詢>
<在哪裡>
<DateRangesOverlap>
<FieldRef 名稱 ="EventDate"/>
<FieldRef 名稱 ="結束日期"/>
<FieldRef 名稱 ="RecurrenceID"/>
<數值型別 ="日期時間">
<月 />
</價值>
</DateRangesOverlap>
</在哪裡>
<OrderBy><FieldRef 名稱 ="Session_x0020_ID" /></OrderBy>
</查詢>

(我已經破解了 &這是;和 &gt 的和拆分出來至為清楚起見多條線路).

添加 <OrderBy> 位和它現在按會話 ID 進行排序, 不是內部清單項 ID.

碩大的提示 o’ 這頂帽子 貝基 Isserman 她到宵禮衫博客文章的評論: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. 我不會把 <OrderBy> 在正確的地方沒有她的評論.

我希望把這寫到更清晰的螢幕截圖很快, 但我不會做的情況下, 至少我做了這麼多.

</結束>

Technorati 標籤: , , ,

SharePoint 功能 & 解決方案管理 — 別忘了在 CRUD U (或 D 為那件事)

我們一共花費了大量的時間來思考的 SharePoint 解決方案 — 如何創建它們, 要使用哪個工具, 當他們無法部署時,會發生什麼, 計時器作業, 作用域, 等. 我們花太多時間思考很容易忘記我們需要以及收回他們的前期位. 縮回解決方案也可能是更困難, 從概念設計的角度看, 比將它們部署. 部署基本上是食譜件. 通常, 安裝功能, 也許有一些資料載入到一個清單中的功能接收器, 那種事. 不過, 縮回是潛在的更複雜.

給定的解決方案可能會創建像這些工件:

  • 內容類型
  • 清單定義
  • 網站定義
  • 清單中的資料
  • 甚至接收機
  • InfoPath 表單

該清單將亮起.

雖然很顯然重要的是設計的解決方案,正確地具現化這些文物, 它是同樣重要的是考慮更新和刪除案例. 如果您的解決方案創建新清單,並使用填充該清單資料, 收回該解決方案時,會發生什麼? 在某些情況下, 應刪除清單. 在其他情況下, 應該留給歷史目的不變. 您的業務要求將您引導到正確的決定.

與此説明, 創建一個矩陣,其中列出了您的解決方案部署到 SharePoint 的每個工件. 列出每個工件的三列, 一個用於創建, 更新和刪除. 每個案例, 確定該操作的正確結果.

這種分析,顯然最好是之前到 SharePoint 場過部署解決方案. 不過, 像吸煙一樣, 開始做正確的事情是永遠不會太遲. 創建矩陣和發展計畫,以解決缺少的更新/刪除場景. 它可能是一個難的問題解決, 但至少你會放一個框周圍問題.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Technorati 標籤:

快速修復: Web 服務與 SharePoint 的交互進行, 檢查

100 萬多年前, 我説明開發了通過設計器 SharePoint 工作流的自訂操作調用的 web 服務. 這一周, 在用戶端想要將它移動到生產 (最後!) 所以我們做了.

自訂操作能正常工作, 但它調用的 web 服務並沒有, 給我們此錯誤:

System.InvalidOperationException: 可以僅由 SQL 伺服器讀取從設定資料庫中擁有許可權的使用者加入到伺服器場中的電腦上執行此操作. 要將此伺服器連接到伺服器場, 使用 SharePoint 產品和技術設定精靈, 位於在管理工具中的開始功能表.
在 Microsoft.SharePoint.Administration.SPWebApplication.Lookup(Uri requestUri)

原來,我忘了添加到 SharePoint 應用程式池在 IIS 中的服務. 曾經,, 它能正常工作.

此 MSDN 論壇帖子給我我需要的線索: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</結束>

訂閱我的博客.

跟著我在 twitter 上: http://twitter.com/pagalvin

Technorati 標籤:

快速而方便地: 得到 SPItemList 的 SPFolder

我走到這一問題和谷歌似乎永遠不知道自己想做什麼, 所以這記.

我做了很多調試中的最後一周或兩個事件接收器. 二被定義對文件庫. 在文件庫中的個別專案密切應用到其父資料夾. 所以, 我總是該專案的資料夾用於各種操作. 在調試時, 我需要更新我知道其 ID 的特定項的資料夾的中繼資料.

這裡是一個小的主控台應用程式 (在伺服器場中的伺服器上運行而設計) 採用兩個參數的: 要分配給欄位的項和值的 ID, "審批狀態". 它硬式編碼東西很多並沒有任何錯誤檢查.

代碼查找一個硬式編碼網站, 獲取一個硬式編碼文件庫,然後查閱資料表示的專案. 它發現該專案的父資料夾中,然後賦值狀態.

在這裡對我來說重要的教訓是 SPItem 不讓您可以訪問該資料夾. 您需要使用 SPListItem.File.

如果沒人願意提供批判或建議更好的方法獲取專案的資料夾, 請留下評論.

<代碼>
使用 系統;
使用 System.Collections.Generic;
使用 System.Text;
使用 Microsoft.SharePoint;
使用 System.Collections;

命名空間 Conchango
{
    /// <摘要>
 /// </摘要>
  ManualFolderUpdate
    {
        靜態 無效 主要(字串[] args)
        {
            字串 msh = "ManualFolderUpdate (v1.0): "; // msh ="消息標題"

 主控台.應使用 WriteLine(msh + "啟動.  我上次修改日期 08/8/4。");

            字串 url = http://localhost/xyzzy;

            使用 (SPSite oSPSite = 新增功能 SPSite(url))
            {

                使用 (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList 文件庫 = oSPWeb.Lists["檔"];

                    主控台.應使用 WriteLine(msh + "有的文件庫。");

                    主控台.應使用 WriteLine(msh + "Doc lib 專案計數: [" + docLib.ItemCount + "].");

                    int 資料夾 Id = 0;
                    字串 NewStatus = "xyzzy";

                    資料夾 Id = 系統.轉換.ToInt32(args[0].ToString());
                    主控台.應使用 WriteLine("尋找專案的資料夾: [" + 資料夾 Id + "].");

                    SPListItem 李 = docLib.GetItemById(資料夾 Id);

                    SPFolder thisItemFolder = 李。File.ParentFolder;

                    主控台.應使用 WriteLine(msh + "有的父資料夾。");

                    NewStatus = args[1].ToString();
                    主控台.應使用 WriteLine("將狀態設置為 [" + NewStatus + "].");

                    主控台.應使用 WriteLine("按回車鍵提交更新或 CTRL C,以中止。");

                    主控台.ReadLine();

                    thisItemFolder.Item["審批狀態"] = NewStatus;
                    thisItemFolder.Item.Update();

                    主控台.應使用 WriteLine(msh + "完成資料夾中的更新.  退出。");

                } // 使用 SPWeb

            } // 使用 SPSite

 主控台.應使用 WriteLine(msh + "完成了。");

        } // 主要

    } // 類 foldersync
} // 命名空間
</代碼>

</結束>

訂閱我的博客.

Technorati 標籤:

隱藏在 SharePoint 中的自訂操作

幾個月前, 同時為用戶端專案的工作, 我創建了一個功能. 除其他外, 該功能定義自訂操作 (這些顯示在網站設置下). 此自訂操作的唯一目的是要展示給我的功能啟動按預期方式工作. 基本上, 我把它作為一種粗形式的調試.

多到我的尷尬, 此調試偽作其方式從開發到使用者接受度測試和生產之前有人問了, "什麼是此 xyzzy 連結?"

現在, 我們在生產中,真的不想卸載功能, 修復 elements.xml,然後重新安裝.

陶德黯淡 指出了簡單的方法來處理它. 用他的話說:

"CustomActions 不會被覆制到資料庫中, 他們直接從 Elements.xml 檔中讀取並複製到運行時應用程式狀態. 所以, 你不需要停用, 卸載, 重新安裝, 並重新啟動該功能,刪除 CustomAction. 只是從 Elements.xml 檔中刪除和回收應用程式池(s) 影響. 下一次的功能就是在範圍內, 你再也不會請參閱 CustomAction。"

我跟著他的指示和, 答案是肯定的, 他們的工作.

以我為例, 這是只是單一的 WFE 部水準安裝. 如果你發現自己這一問題在將來與多個 WFE, 我相信你必須每年進行更改.

</結束>

訂閱我的博客.

Technorati 標籤: ,

快速修復: 訪問 SharePoint 網站的引發 [HttpException (0x 80004005): 請求超時。]

我的一個開發人員同事這周在一個專案上工作和致力於建造一些瘋狂的 web 部件時遇到超時問題. 他 web 部件很好, 但"突然" 無關的網站變得非常緩慢和頻繁地超時與此錯誤:

[HttpException (0x 80004005): 請求超時。]

我登錄,看到其他幾個網站都很好. 我懷疑有一些隱藏的 web 部件頁上和使用 值得信賴 ?內容 = 1 調試技術, 我發現了其實 11 web 部件頁上, 其中只有兩個可見. 甚至更好 (從 let's-hope-I-find-something-ugly-here-that-I-can-fix 的角度), 這些已關閉的 web 部件的三個有一個名稱為"錯誤".

我刪除這些 web 部件 (它本身花了相當長的時間) 這解決了問題. 今天 🙂

</結束>

訂閱我的博客.

Technorati 標籤:

從 WSS 援引 SSRS Web 服務 / FBA 環境裡的苔蘚

我們需要調用"CreateSubscription" 在 FBA 主辦 SSRS web 服務方法管理 MOSS 環境從自訂 web 部件. 我們一直聽到的變化:

  • 401: 未授權
  • 移動物件

移動的"物件" 消息是最有趣的因為它說"物件" (我們 SSRS 服務) 移動了"" 到 login.aspx. 這顯然意味著我們有某種身份驗證問題.

我最終意識到我有 書簽博客條目 由羅伯特 · 閣樓,描述了如何調用 FBA 環境內生活的一般用途 WSS/苔蘚 web 服務. 請注意,我不能直接連結到這篇文章 (作為的 06/09/08) 因為它想要進行身份驗證. 我提供的連結將帶您到"所有職位" 視圖,你可以通過搜索"訪問 MOSS Web 服務使用基於表單的身份驗證"找到特定的文章.

下面是曾為我們工作的代碼:

ReportingService2006 rs = 則為 null; 
// 進行身份驗證 身份驗證 auth = 新增功能 身份驗證(); 
驗證Url = "http://URL/_vti_bin/Authentication.asmx";
驗證CookieContainer =
新增功能 CookieContainer();
LoginResult 結果 = 驗證登錄("使用者 id", "密碼");
如果 (結果。錯誤代碼 = = LoginErrorCode.NoError) 
{
// 沒有錯誤, 所以得到曲奇餅.
CookieCollection 餅乾 = 驗證CookieContainer.GetCookies(新增功能 Uri(驗證Url));
Cookie authCookie = 曲奇餅[結果。CookieName];
rs =
新增功能 ReportingService2006();
rs。Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs。CookieContainer =
新增功能 CookieContainer();
rs。CookieContainer.Add(authCookie);
}
請嘗試
{
  rs。CreateSubscription(報告, extSettings, desc, 事件種類, matchData, parameters1);
}
捕獲 (Ex 的異常)
{
  Console.WriteLine(前女友。Message.ToString());
}

我解釋一件事,這樣的工作:

  • 我們的 web 部件需要撥號的身份驗證服務和說, "嘿,你, 托尼, 這就是我!".
  • 身份驗證服務的答覆說, "嘿,你, 我知道你. 孩子們如何?? 這裡是一個權杖。"
  • 我們打電話給 SSRS 服務和說, "托尼寄給我, 這裡是的標記。"

</結束>

訂閱我的博客.

Technorati 標籤: , ,

快速和簡單: 提供一個 Web 網站,在 C# 中使用 SharePoint 物件模型

我試著尋找一個小程式碼片段代碼表明如何可以在網站集合中創建新的 SPWeb. 我沒找到作為很快或很容易,不出所料所以我會在這個問題上耳光在一起的一個小的條目.

此代碼創建一個新的 Wiki 網站:

 SPSite siteCollection;

    siteCollection = 新增功能 SPSite("HTTP://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy 標題",
        "xyzzy 描述", 1033, SPWebTemplate.WebTemplateWIKI, false, false);

我最初的搜索失敗,因為我一直在尋找像"提供網站使用 sharepoint 物件模型的短語" 等.

如果你 搜索 為"Webs.Add()", 你會發現一些非常有用的博客條目, MSDN 文章和關於這個問題深入的 SDK 文檔. 我絕對推薦 此網站.

</結束>

訂閱我的博客.

Technorati 標籤: