Danh mục lưu trữ: Phát triển SharePoint

Một lý do cho "một hoặc nhiều trường loại không được cài đặt đúng”

Tôi đã làm cho một chỉnh nhỏ ngày hôm qua cho một phần web nào một truy vấn CAML dựa vào danh sách.  Tôi đã thực hiện những thay đổi, triển khai nó và đã nhận trúng với một lỗi:

Lỗi bất ngờ đã xảy ra trong ba ngày Outlook dự báo thời tiết WebPart. Xin vui lòng liên hệ với người quản trị hệ thống. Một hoặc nhiều loại trường không được cài đặt đúng. Đi đến trang thiết lập danh sách để xóa các lĩnh vực.

Tôi đã đối mặt một vấn đề khác oddball trước đó do đó, tôi đã không ngay lập tức kết nối truy vấn CAML của tôi với lỗi SharePoint báo cáo với tôi.  Tôi đã làm một tìm kiếm bing nhanh và và tìm thấy bài đăng này hữu ích blog bởi Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Dưới đây là các truy vấn xấu:

truy vấn.Truy vấn ="<Nơi><Và><Neq><FieldRef tên = 'Abbr' /><Giá trị loại = 'Văn bản'>SFNY</Giá trị><FieldRef tên = 'Abbr' /><Giá trị loại = 'Văn bản'>SFIS</Giá trị></Neq></Và></Nơi>";

Ở đây nó cố định:

truy vấn.Truy vấn ="<Nơi><Và><Neq><FieldRef tên = 'Abbr' /><Giá trị loại = 'Văn bản'>SFNY</Giá trị></Neq><Neq><FieldRef tên = 'Abbr' /><Giá trị loại = 'Văn bản'>SFIS</Giá trị></Neq></Và></Nơi>";

Vì vậy, các đạo đức của câu chuyện là: Hãy chắc chắn CAML của bạn là chính xác hoặc bạn có thể nhận được một lỗi oddball.

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

</kết thúc>

SharePoint 2010 Giải pháp bị mắc kẹt trong "việc triển khai” Tình trạng

Tôi đã sử dụng PowerShell để triển khai giải pháp một đến một trang trại SharePoint (h/t:  Corey Roth và của mình bài đăng blog). 

Tôi sau đó đã đi đến miền trung admin, truy cập hệ thống cài đặt và sau đó "Quản lý trang trại giải pháp" để triển khai nó lại trang trại và đến của tôi (nhẹ) mất tinh thần, nó đã bị mắc kẹt trong "việc triển khai".

Tôi đã nhìn thấy vấn đề này đưa ra nhiều lần trên các diễn đàn MSDN, Vì vậy, tôi đã rất lo lắng về nó.  Tôi tìm kiếm xung quanh một chút và tìm thấy bài viết này hữu ích (bởi một người dường như Time staff từ http://www.resolutionsnet.co.uk/).  Tôi hủy bỏ công việc triển khai và khi tôi nhấp vào các giải pháp, nó nói với tôi rằng nó thành công bố trí giải pháp đến ba trong số bốn chủ trong trang trại.

Tôi đã đi đến các máy chủ sai trái, ngừng các dịch vụ hẹn giờ và khởi động lại nó.  Hệ phục vụ Windows thực sự nói với tôi rằng các dịch vụ đã không đáp ứng với lệnh, Vì vậy, mà nói với tôi rằng nó đã bị bệnh.

Thời gian này, khi tôi đã đi trở lại trung tâm admin, Tôi đã có thể triển khai nó với vấn đề không.

Hy vọng này chút thông tin sẽ giúp một số trong một ràng buộc một trong những ngày này.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Lỗi trong ngày: "Không thể thêm hội đồng đã chỉ ra cho GẤC”

Tôi đã chiến đấu một chút với visual studio 2010 trên một giải pháp sp2010 và đã nhận được lỗi này:

Lỗi xuất hiện trong triển khai bước 'Thêm giải pháp': Lỗi: Không thể thêm hội đồng đã chỉ định cho bộ nhớ cache của toàn cầu hội: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Tôi đã đi đến GẤC chính nó (c:\windowsassembly) để thử và loại bỏ và nhận được một lỗi "tập tin dùng".

Tôi đã làm một iisreset, Tôi gần như đã tải về Sysinternals, Tôi đã ngừng các dịch vụ hẹn giờ trong dịch vụ... cuối cùng, Tôi chỉ cần đóng cửa và mở cửa trở lại phòng thu trực quan chính nó và tôi đã cuối cùng đã có thể đóng nó ra.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Nhanh chóng và dễ dàng: Gỡ lỗi VS 2010 Triển khai giải pháp

Visual Studio 2010 báo cáo lỗi khó gỡ lỗi trong đợt hoạt động một số lần.  Một cách nhanh chóng và dễ dàng để làm một số rất thô gỡ lỗi là để ném ngoại lệ được đặt tên theo của riêng bạn.  Visual Studio sẽ hiển thị chúng trong giao diện điều khiển đầu ra.

Xem xét việc này chút mã:

image

Nếu tính năng này được scoped để một ứng dụng web, Trang web sẽ được vô.  Nếu bạn thử và tham khảo một tính chất của trang web, bạn sẽ nhận được lỗi mơ hồ:

Lỗi xuất hiện trong triển khai bước 'Thêm giải pháp': Đối tượng tham chiếu không được đặt để một thể hiện của một đối tượng.

Tuy nhiên, Nếu ném ngoại lệ mới và vượt qua một chuỗi cho các nhà xây dựng, bạn nhận được một thông báo hơn hữu ích:

image

Nó là một kỹ thuật dầu thô, nhưng khá nhanh và dễ dàng.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Bộ đếm thời gian công việc FeatureActivated và phạm vi tính năng

Tôi đã làm việc với một số mã mà ai đó đã trao cho tôi một bộ đếm thời gian công việc.  Ông đã không cung cấp mã kích hoạt tính năng thực tế vì vậy tôi đã phải viết nó, Tất nhiên.  Tôi đã lợi dụng Andrew Connell nổi tiếng blog bài về đối tượng.

Tôi đang sử dụng Visual Studio 2010 và triển khai giữ thất bại với lỗi "lỗi xảy ra trong triển khai bước 'Thêm giải pháp': Đối tượng tham chiếu không đặt một thể hiện của một đối tượng."

Tôi đã lấy mã của mình quá theo nghĩa đen.  Tôi phạm vi tính năng web ứng dụng cấp, như được hiển thị:

image

Kết quả là, các thuộc tính được gửi đến người nhận từ các ứng dụng web, không phải là một tập hợp trang web.  Cuối cùng, Mã trông như thế này:

công chúng ghi đè lên hiệu FeatureActivated(Thuộc tính SPFeatureReceiverProperties)
{

    // Không làm như sau với tính năng web ứng dụng scoped, nó dẫn đến thất vọng Nụ cười
    // Trang web SPSite = thuộc tính.Feature.Parent như SPSite;

    SPWebApplication wa = thuộc tính.Feature.Parent như SPWebApplication;

    Nếu (WA == null) ném ngoại lệ mới("webapp2 là không.");

    foreach (SPJobDefinition việc làm tại wa.JobDefinitions)
    {

        Hãy thử
        {
            Nếu (công việc.Tên == List_JOB_NAME)

                công việc.Xóa bỏ();
        }
        bắt (Ngoại lệ e)
        {
            ném ngoại lệ mới("điểm đánh dấu 2");
        } // bắt ngoại lệ e
    }

    // cài đặt công việc

    WeatherForecastTimerJob weatherForecastTimerJob =
        mới WeatherForecastTimerJob(List_JOB_NAME, WA);

    Lịch trình SPMinuteSchedule = mới SPMinuteSchedule();
    lịch trình.BeginSecond = 0;
    lịch trình.EndSecond = 59;
    lịch trình.Khoảng thời gian = 5;
    weatherForecastTimerJob.Schedule = lịch trình;
    weatherForecastTimerJob.Update();

}

Chìa khóa take-away là khi các tính năng được scoped để một ứng dụng web, SPFeatureReceiverProperties SharePoint đi để nhận tính năng của bạn có các thông số cấp ứng dụng web.  Mục nhập blog cũ của Andrew giả định nó scoped để bộ sưu tập trang web.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Where's Microsoft.SharePoint.ApplicationPages.Administration.dll?

Tôi đã được bàn giao một dự án phòng thu trực quan mà tài liệu tham khảo Microsoft.SharePoint.ApplicationPages.Administration.dll.  Nó đã cho tôi một chút trong khi tìm thấy nó và tôi nghĩ tôi muốn chia sẻ.  Trong môi trường của tôi, Sân bay này nằm ở:

c:\chương trình filescommon filesmicrosoft sharedweb máy chủ extensions14configadminbin

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Dự án CodePlex – SP2010 Explorer

Như một phần của một nỗ lực vào-ra để tìm hiểu chi tiết kỹ thuật cấp thấp của SharePoint 2010, Tôi đã tạo ra một "SharePoint Explorer"loại công cụ.  Ý tưởng không phải là mới.  Tôi đã sử dụng dự án này hơn một lần: http://sharepointexplorer.codeplex.com/.  Ý tưởng của tôi là tạo ra một phiên bản SharePoint sử dụng kết nối web phần để hiển thị tất cả các chi tiết ở độ cao thấp mô hình đối tượng có thể cung cấp. 

Bài đăng blog này phục vụ như là cả hai thông báo của các dự án và một cuộc gọi cho các tình nguyện viên.  Nếu bạn quan tâm đến làm việc trên dự án này, Hãy cho tôi biết qua email (Galvin.Paul@Gmail.com) và chúng tôi sẽ làm việc nó ra.

Đây là dự án: http://sp2010explorer.codeplex.com/

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Làm việc với TreeNodeBinding trong ASP.NET Treeview Control

Tôi đã làm việc trên những gì tôi hy vọng sẽ có một sắp phát hành CodePlex dự án cung cấp một chút tốt đẹp tích hợp của các bộ phận web nói chuyện với nhau thông qua kết nối nhà cung cấp/người tiêu dùng cho các mục đích của khám phá một trang web SharePoint dưới bao.  (Điều này chắc chắn đã được thực hiện trước khi, nhưng đây là một dự án học tập nhiều như bất cứ điều gì khác).  Điều này có nghĩa là để là một thay thế cho windows explorer xem của SharePoint 2010 thư viện tài liệu.

Các mã đã đệ quy thông thường gọi xuống của SPWeb và SPLists từ bắt đầu được đưa ra một điểm.  Các đối tượng mà không vượt qua đó tất cả xây dựng một chuỗi XML giống như thế này:

<sitecollection url =’http://demo2010a:9090′>
 
<web
     tiêu đề = 'Hello World Sandbox' 
     Mẫu =' một trang web cho đội bóng để nhanh chóng tổ chức, tác giả, và chia sẻ thông tin, BLAH BLAH BLAH'>

     <danh sách
        tiêu đề ='BCC_Health_Services_FAQs’
        Template ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[DELIM]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</danh sách>

     <danh sách
        tiêu đề = 'BCC_Notifications' 
        Template = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[DELIM]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
     </danh sách>

  </web>

</sitecollection>

Tôi mong đợi để làm sạch lên rằng XML trước khi tất cả được nói và thực hiện.

Tôi muốn cuối cùng nhận được thông tin đó lên và vào một control Treeview.  Không chính xác trái đất shattering công cụ.

Thách thức tôi đã ở đây là để kết nối xem cây với một kiểm soát nguồn dữ liệu XML thay vì tự xây dựng của tôi treenodes như tôi đi qua cây.  Tôi đã làm điều này một phần vì tôi cố ý làm cho những điều khó khăn hơn về bản thân mình (Đây là một dự án học tập sau khi tất cả) và một phần vì tôi có này khái niệm mơ hồ mà xây dựng các nút cây như tôi đi qua cây không phải là một ý tưởng tốt cho lâu dài.

Vấn đề với cách tiếp cận này là rằng các control Treeview không biết về thuộc tính tốt trên các nút thú vị như "danh sách" hoặc "web", do đó, nó cho thấy sản lượng này theo mặc định:

 

image

Đó không phải là hữu ích.  Đây là nơi mà các lớp học TreeNodeBinding giúp.  Tôi có thể sử dụng điều này để nói với các control Treeview làm thế nào nó nên giải thích các XML.  Đây là một ví dụ:

TNB = mới TreeNodeBinding();
TNB.DataMember = "danh sách"; // Đây là nhãn trong xml cho một trang web.
TNB.TargetField = "listid";
TNB.ValueField = "tiêu đề";
TNB.ToolTipField = "Mẫu";

Ràng buộc này cho treeview rằng khi nó tìm thấy một <danh sách> nút trong các XML, áp dụng các bindings cho TargetField, ValueField và ToolTipField.  Trong có thể ứng dụng, các bản đồ như sau:

  • TargetField: Khi ai đó nhấp chuột vào một nút giá trị, Đây là những gì bạn sẽ nhận được để SelectedNode.Value.  Điều này là không được để lẫn lộn với...
  • ValueField: Đây là những gì bạn muốn Treeview để hiển thị cho người dùng.
  • ToolTipField: Giá trị từ XML mà bạn muốn làm một Tooltip.

Thêm TreeNodebinding để xem cây cửa và bạn nhận được đầu ra như thế này:

 

image

Tôi sẽ có thêm về tất cả điều này như tôi tiếp tục trên các dự án và cuối cùng đặt này lên ngày Codeplex.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Kết nối các bộ lọc lĩnh vực văn bản với một phần Web tuỳ chỉnh của bạn

Tôi muốn nhận thông tin từ một bộ lọc lĩnh vực văn bản trong SharePoint 2010 thành phần tùy chỉnh trang web của tôi.  Tôi đã thử sử dụng bài viết này MSDN như một cơ sở nhưng bài viết hoặc là bị hỏng hoặc tôi không chỉ sau đó một cách chính xác.

Một chút tìm bật lên Mike Smith Đóng góp MSDN Ở đây (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Có rất nhiều thứ lên đó trên connectable web phần nhưng bài viết của Mike đơn giản như nó được.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Nhanh chóng và dễ dàng: Gửi Email bằng cách sử dụng máy chủ SMTP của Gmail trong .net C#

Điều này là không chính xác là một chủ đề mới, nhưng khi tôi cần thiết để làm điều đó, Tôi thấy rất nhiều "tại sao sẽ không làm việc này cho tôi" và không quá nhiều câu trả lời trực tiếp. Tôi hy vọng ai đó tìm thấy điều này hữu ích.

Nhiều mã, sau đây sẽ gửi một email bằng cách sử dụng tài khoản gmail của riêng của tôi để làm điều đó, bao gồm các tập tin đính kèm:

bằng cách sử dụng System.Net.Mail;
bằng cách sử dụng System.Net;

NetworkCredential loginInfo = mới NetworkCredential("[ID Gmail của tôi]", "[Mật khẩu Gmail của mình]");
MailMessage bột ngọt = mới MailMessage();
bột ngọt.Từ = mới MailAddress("[M Gmail Id]@gmail.com");
bột ngọt.To.Add(mới MailAddress("paul.galvin@arcovis.com"));
bột ngọt.Tiêu đề = "Kiểm tra infopath dev chủ đề";
bột ngọt.Cơ thể = "<HTML><cơ thể><mạnh mẽ>Một thông điệp mạnh mẽ.</mạnh mẽ></cơ thể></HTML>";
bột ngọt.IsBodyHtml = sự thật;

foreach (chuỗi aFile NIPFD.GetAttachmentNamesAndLocations())
{
    bột ngọt.Attachments.Add(mới Tập tin đính kèm(aFile));
} // Thêm tệp đính kèm.

SmtpClient khách hàng = mới SmtpClient("smtp.gmail.com");
khách hàng.EnableSsl = sự thật;
khách hàng.UseDefaultCredentials = sai;
khách hàng.Thông tin đăng nhập = loginInfo;
khách hàng.Cảng = 587;
khách hàng.EnableSsl = sự thật;
khách hàng.Gửi(bột ngọt);

Một vài bit quan trọng tôi chậm và quan sát khác / ghi chú:

  • Dòng đầu tiên tạo ra đối tượng loginInfo cần phải sử dụng gmail ID tước "@gmail.com”. Vì vậy, Nếu địa chỉ email gmail của tôi "sharepoint@gmail.com"và mật khẩu của tôi là"xyzzy"sau đó dòng sẽ giống như thế:

NetworkCredential loginInfo = mới NetworkCredential("sharepoint", "xyzzy");

  • Tài khoản gmail của tôi được thiết lập để sử dụng SSL và đó không phải là một vấn đề.
  • Một số thông tin xung đột hiện có trên những gì cổng để sử dụng. Tôi đã sử dụng cổng 587 và nó làm việc tốt cho tôi.
  • Trong trường hợp của tôi, Tôi cũng cần thiết để gửi tập tin đính kèm. NIPFD đối tượng có một phương pháp mà biết tập tin đính kèm của tôi ở đâu. Nó là trở lại một đường dẫn đầy đủ (Ví dụ như. "c:\tempattachment1.jpg". Trong thử nghiệm của tôi, Tôi đã có hai tập tin đính kèm và cả hai đều đã làm việc tốt.

Tôi đã sử dụng visual studio 2008 để viết mã này.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Technorati Tags: ,,,