分類存檔: SharePoint 發展

"一個或多個欄位類型安裝不正確的原因之一”

我不會加楓查詢清單的 web 部件昨天做小的調整。  我做了更改, 部署它,撞了一下,錯誤:

在三天 Outlook 天氣預報 WebPart 發生意外的錯誤. 請與系統管理員聯繫. 一個或多個欄位類型安裝不正確. 轉到要刪除這些欄位的清單中設置頁面.

我面臨著另一個古怪問題早所以我並沒有立即連接我加楓查詢與 SharePoint 向我報告的錯誤。  我做了一個快速的必應搜索和 發現這個有用的博客負責 Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

這裡是壞的查詢:

查詢。查詢 ="<在哪裡><和><Neq><FieldRef 名稱 = 'abbr' /><數值型別 = 文本>SFNY</價值><FieldRef 名稱 = 'abbr' /><數值型別 = 文本>小家庭改善計畫</價值></Neq></和></在哪裡>";

在這裡,它被固定:

查詢。查詢 ="<在哪裡><和><Neq><FieldRef 名稱 = 'abbr' /><數值型別 = 文本>SFNY</價值></Neq><Neq><FieldRef 名稱 = 'abbr' /><數值型別 = 文本>小家庭改善計畫</價值></Neq></和></在哪裡>";

所以, 這個故事的寓意是: 確保您加楓是正確或您可能會得到古怪錯誤.

訂閱我的博客.

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

</結束>

SharePoint 2010 卡在"部署的解決方案” 狀態

我用 PowerShell 將解決方案部署到 SharePoint 場 (h/t:  寇里 · 羅斯 和他 博客張貼內容). 

接著,中央管理, 訪問系統設置,然後"農場管理解決方案"將它部署在農場和有關我 (輕微) 失望, 它被困在"部署".

這一問題拿出很多時候在 MSDN 論壇上看到了。, 就這件事非常緊張。  我就有點搜索和 發現這很有説明的文章 (由從看似吹風的人 http://www.resolutionsnet.co.uk/).  我取消部署作業和點擊到解決方案, 它告訴我它已成功部署解決方案,為三場中的四個伺服器.

我去了誤入歧途的伺服器, 停止計時器服務並重新啟動它。  Windows 伺服器實際上告訴我,服務未能回應命令, 這就告訴我它生病.

這一次, 當我回到中央管理, 我得以部署它,並沒有問題的.

希望這位的資訊將説明一些在一天的綁定.

</結束>

訂閱我的博客.

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

誤差的一天: "不能添加指定的程式集到 gac 中”

我已經有點奮鬥的歷史與 visual studio 2010 關於 sp2010 解決方案和得到此錯誤:

在 '添加解決方案' 的部署步驟中發生錯誤: 錯誤: 無法將指定的程式集添加到全域組件快取: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

我走到 GAC 本身 (c:\windowsassembly) 要嘗試並刪除了"在使用中的檔"錯誤.

我做了 iisreset, 我幾乎下載 微軟, 我停下來的計時器服務在服務 ... ... 最後, 我只是關閉並重新打開 visual studio 本身也終於要關閉它.

</結束>

訂閱我的博客.

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

快速而方便地: 調試 VS 2010 解決方案部署

Visual Studio 2010 在部署過程中幾次報告難調試錯誤。  快速、 方便的方式做一些非常粗糙的調試就拋出自己命名的異常。  Visual Studio 將在輸出主控台中顯示它們.

考慮這段代碼:

image

如果此功能只限于一個 web 應用程式, 網站也將為空。  如果您嘗試並引用網站的屬性, 你會含糊不清的錯誤:

在 '添加解決方案' 的部署步驟中發生錯誤: 未設置到物件的實例的物件引用.

不過, 如果引發一個新異常,並傳遞到建構函式的字串, 您得到一個稍有更多有用的資訊:

image

它是一種原油技術, 但非常快速和簡單.

</結束>

訂閱我的博客.

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

計時器作業 FeatureActivated 和功能範圍

我一直在與一些代碼,有人遞給我一個計時器作業的合作。  他沒有提供的實際功能啟用代碼,所以我不得不把它寫, 答案是肯定的。  利用 安德魯 Connell 著名博客張貼內容 關於這個問題.

我使用的 Visual Studio 2010 和部署不斷失敗並出現錯誤"錯誤部署步驟中發生 '添加解決方案': 物件引用不設置到物件的實例。

我正在他的代碼太誇張了。  我範圍向 web 應用程式級別的功能, 如圖所示:

image

作為一個結果, 將被發送到接收方的屬性是從 web 應用程式, 不是一個網站的集合。  在結束, 代碼看起來像這樣:

公眾覆蓋 void FeatureActivated(SPFeatureReceiverProperties 屬性)
{

    // 不要做以下 web 應用程式作用域功能, 它會導致絕望 微笑
    // SPSite 網站 = 屬性。作為 SPSite Feature.Parent;

    SPWebApplication wa = 屬性。作為 SPWebApplication Feature.Parent;

    如果 (佤族 = = null) 引發新的異常("webapp2 是空的"。);

    foreach (佤族的 SPJobDefinition 工作。JobDefinitions)
    {

        請嘗試
        {
            如果 (作業。名稱 = = List_JOB_NAME)

                作業。刪除();
        }
        捕獲 (異常 e)
        {
            引發新的異常("標記 2");
        } // 捕獲異常 e
    }

    // 安裝作業

    WeatherForecastTimerJob weatherForecastTimerJob =
        新 WeatherForecastTimerJob(List_JOB_NAME, 佤族);

    SPMinuteSchedule 附表 = 新 SPMinuteSchedule();
    排程。BeginSecond = 0;
    排程。EndSecond = 59;
    排程。時間間隔 = 5;
    weatherForecastTimerJob.Schedule = 排程;
    weatherForecastTimerJob.Update();

}

外賣的關鍵是,當該功能只限于一個 web 應用程式, SharePoint 傳遞給您功能接收機的 SPFeatureReceiverProperties 具有 web 應用程式級參數。  安德魯的舊博客條目假定它的範圍限於網站集合.

</結束>

訂閱我的博客.

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

Microsoft.SharePoint.ApplicationPages.Administration.dll 在哪裡?

我被傳引用 Microsoft.SharePoint.ApplicationPages.Administration.dll 的 visual studio 專案。  我花了一點雖然發現它和我的思想會分享。  在我的環境中, 它坐落在:

c:\程式必須使用 sharedweb 伺服器 extensions14configadminbin

</結束>

訂閱我的博客.

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

CodePlex 專案 – SP2010 資源管理器

作為持續努力的去學習 SharePoint 技術低級別詳細資訊的一部分 2010, 已經創建了"SharePoint 資源管理器"好心的工具。  這個想法並不新鮮。  我不止一次使用此專案: http://sharepointexplorer.codeplex.com/.  我的想法是要創建 SharePoint 版本使用連接 web 部件以顯示所有底層的細節可以提供的物件模型。 

這篇文章作為志願者的這兩個發佈的專案,以及一個調用。  如果你在這個專案上工作感興趣, 讓我知道通過電子郵件 (galvin.paul@gmail.com) 我們要把它做,並.

這是該專案: http://sp2010explorer.codeplex.com/

</結束>

訂閱我的博客.

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

使用 ASP.NET Treeview 控制項中 TreeNodeBinding

我一直對我希望將很快公佈 CodePlex 提供了很好的集成的大量的互相交談通過探討下蓋的 SharePoint 網站供應商和消費者連接的 web 部件的專案。  (這當然做過, 但這是一個學習專案,那麼什麼都重要).  這是註定的 windows 資源管理器視圖的 SharePoint 的更換 2010 文件庫.

該代碼有通常的遞迴呼叫下來 SPWeb 和 Splist 從給定的起始點。  不會,遍歷的物件生成了一個 XML 字串,看上去像這:

<sitecollection url =’http://demo2010a:9090′>
 
<web
     標題 = 你好世界沙箱 
     範本 =' 為快速組織的小組網站, 作者, 和共用資訊, 等等 '>

     <清單
        標題 ='BCC_Health_Services_FAQs’
        範本 ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</清單>

     <清單
        標題 = 'BCC_Notifications' 
        範本 = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877-41 c 0-9063-b9612be80d5e’>
     </清單>

  </web>

</sitecollection>

我期望要清潔了之前所有, XML 是說和做.

我想要爬,走進一個 Treeview 控制項最終獲取該資訊。  不正是地球粉碎的東西.

我把這裡的挑戰是要連接到 XML 資料來源控制項而不是手動建立我的樹,如我遍歷樹的樹狀檢視。  我做這部分是因為我在故意做的事情上自己更難 (這畢竟是一個學習專案) 也有部分是因為我有這種模糊的概念,建立樹節點作為我遍歷樹長遠來說不是一個好主意.

這種方法的問題是 Treeview 控制項並不知道有關的有趣像"清單"或"網站"節點上的良好特性,所以它在預設情況下顯示此輸出:

 

image

這不是很有用的。  這是哪裡的 TreeNodeBinding 類可以説明。  我可以用它來告訴 Treeview 控制項它應如何解釋 XML。  下面是一個示例:

tnb = 新 TreeNodeBinding();
tnb。DataMember ="名單"; // 這是在為一個網站的 xml 標籤.
tnb。TargetField ="listid";
tnb。ValueField ="標題";
tnb。ToolTipField ="範本";

此綁定告訴樹狀檢視,當它找到時 <清單> 在 XML 中的節點, 應用 TargetField 的綁定, ValueField 和 ToolTipField。  在可能的應用程式, 這些地圖,如下所示:

  • TargetField: 當有人點擊一個節點值, 這是 SelectedNode.Value 你會得到什麼。  這並不是與混淆...
  • ValueField: 這就是你要的樹狀檢視以顯示給使用者.
  • ToolTipField: 中的值的 XML,您希望作為工具提示.

添加到樹狀檢視中的資料繫結和你 TreeNodebinding 獲取輸出像這樣:

 

image

我會更對所有這一切,我繼續在該專案上,最終把這個貼在 Codeplex 上.

</結束>

訂閱我的博客.

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

將文字欄位篩選器連接到您的自訂 Web 組件

我想要接收來自 SharePoint 中的文字欄位篩選器的資訊 2010 到我的自訂 web 部件。  我嘗試使用 此 MSDN 文章 作為但文章的基礎或者斷開或我只是不是跟著它正確.

小小的更多搜索露面 邁克 · 史密斯 MSDN 的貢獻 在這裡 (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

有很多在外面上可連接的 web 部件的東西但邁克的文章是一樣簡單,它獲取.

</結束>

訂閱我的博客.

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

快速而方便地: 在.NET C# 中使用 Gmail SMTP 伺服器發送郵件

這不完全是一個新的主題, 但當我需要這麼做, 我發現很多的"為什麼不會這項工作對我來說"並沒有太多直接的答案. 我希望有人能找到這有用.

下面這段代碼將使用發送電子郵件我自己的 gmail 帳戶做它, 包括附件。:

使用 System.Net.Mail;
使用 System.Net;

NetworkCredential loginInfo = 新增功能 NetworkCredential("[我的 Gmail ID]", "[我的 Gmail 密碼]");
MailMessage msg = 新增功能 MailMessage();
味精。從 = 新增功能 郵寄地址("[M Gmail Id]@gmail.com");
味精。To.Add(新增功能 郵寄地址("paul.galvin@arcovis.com"));
味精。主題 = "測試 infopath 開發主體";
味精。身體 = "<html><正文><強>一個強烈的資訊。</強></正文></html>";
味精。IsBodyHtml = 真正的;

foreach (字串 恰好 在中 NIPFD。GetAttachmentNamesAndLocations())
{
    味精。Attachments.Add(新增功能 附件(恰好));
} // 添加附件.

SmtpClient 用戶端 = 新增功能 SmtpClient("smtp.gmail.com");
用戶端。EnableSsl = 真正的;
用戶端。使用 = false;
用戶端。憑據 = loginInfo;
用戶端。埠 = 587;
用戶端。EnableSsl = 真正的;
用戶端。發送(味精);

我放慢的幾個關鍵位和其他意見 / 備註:

  • 第一行中創建 loginInfo 物件需要使用 ID 被剝奪了的 gmail "@gmail.com”. 所以, 如果我的 gmail 電子郵件地址 "sharepoint@gmail.com"和我的密碼是"xyzzy"然後線看起來就像:

NetworkCredential loginInfo = 新增功能 NetworkCredential("sharepoint", "xyzzy");

  • 我的 gmail 帳戶設置為使用 SSL,這不是問題.
  • 還有一些相互矛盾的資訊,在那裡上要使用什麼埠. 我使用埠 587 和它對我來說能正常工作.
  • 以我為例, 我也需要發送附件. NIPFD 物件具有一個方法,知道我的附件在哪裡. 它返回一個完全路徑 (例如:. "c:\"tempattachment1.jpg. 在我的測試, 我有兩個附件和他們都能正常工作.

我使用 visual studio 2008 若要編寫此代碼.

</結束>

訂閱我的博客.

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

Technorati 標籤: ,,,