lưu trữ hàng tháng: Có thể 2011

PerformancePoint và lỗi 33494

Một trong những khách hàng của tôi được gọi là ngày hôm nay khi môi trường PerformancePoint (trong SharePoint 2010) phá vỡ.  Một trong các máy chủ ứng dụng trong các trang trại được đang ở mức thấp trên không gian đĩa.  Trong khi địa chỉ đó, khách hàng gỡ cài đặt "quá nhiều" và những gì PP tất cả ngừng hoạt động.  Các bộ phận web sẽ hiển thị "một lỗi bất ngờ xảy ra. Lỗi 33494. Chi tiết bổ sung đã được đăng cho quản trị viên của bạn":

image

Tôi nhìn lên các lỗi và đã không thấy bất cứ điều gì cụ thể để "Lỗi 33494" nhưng này MSDN Diễn đàn gửi bài đã được hữu ích: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Tôi tìm thấy ADOMD.NET đây là một thành phần trong SQL Server 2008 Gói tính năng: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Click vào để phóng to)

Tôi tải về và cài đặt mà và nó cố định tất cả mọi thứ.

Tôi nghĩ rằng đây là một loại khá oddball lỗi, nhưng nếu bạn nhấn nó, bạn ít bạn có một tùy chọn.

</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

Lists.asmx, GetListItems và thư mục

Tôi đã làm một số nghiên cứu cho một ai đó ngày hôm nay trên các dịch vụ web list.asmx cung cấp như một phần của SharePoint 2010 (và trước đó).  Cô đã có thể nhận được các bản ghi danh sách ở thư mục gốc (bao gồm tên của thư mục con), nhưng không thể có được các mục trong thư mục con.  Tôi đã làm một số tìm kiếm xung quanh trên internets và đó là một câu hỏi phổ biến đáng ngạc nhiên.  Được, Tôi không thể nhận được một câu trả lời tốt các câu hỏi đơn giản, "nếu tôi biết thư mục, làm thế nào để có được các mục trong thư mục?”  Để được trung thực, Tôi đã không thử tất cả những khó khăn kể từ khi tôi đã muốn con số này một ra ngày của riêng tôi trong một thời Nụ cười.

Để thiết lập, Tôi tạo ra một trang web được đặt tên "Viết blog kịch bản" và một danh sách tùy chỉnh tên "Tùy chỉnh danh sách với tiểu Folders".  Tôi sau đó tạo ra thư mục tên:

  • Năm 2005
  • Năm 2006
  • Năm 2007

Tôi thêm một vài bài vào thư mục "Năm 2006".  Đây là những gì nó trông giống như:

image

Bạn bè của tôi không phải là văn bản C# Mã nhưng thay vì sử dụng Java, Vì vậy, phong bì xà phòng là những gì cô ấy thực sự cần.  Để nhận được rằng, Tôi đã viết một chút về jQuery và sau đó sử dụng fiddler để có được cuộc trò chuyện thực tế HTTP.

Ở đây là có liên quan jQuery (Tôi sao chép mã xuống dưới đây nếu bạn muốn sao chép/dán):

image

Họ quan trọng đầu tiên là để bao gồm cả một <queryOptions> và <QueryOptions> nút.  Điều quan trọng thứ hai là các <Thư mục> nút là một URL mà khách hàng có quyền truy cập.

Có thể có những cách khác để có được điều này, nhưng điều này đã làm việc tốt cho tôi khi sử dụng jQuery.

Đây là phong bì xà phòng cho các bên trên:

<soapenv:Phong bì xmlns:soapenv =’http://schemas.xmlsoap.org/Soap/Envelope/’>                
  <soapenv:Cơ thể>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/Soap/’>
      <listName>Tùy chỉnh danh sách với tiểu thư mục</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef tên =' tiêu đề’ />
          <FieldRef tên ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Thư mục>
http://demoserver1/blog Kịch bản/danh sách tùy chỉnh danh sách với tiểu thư mục/năm 2006</Thư mục>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Cơ thể>
</soapenv:Phong bì>

Rất nhiều ví dụ và thảo luận xung quanh này dẫn tôi để tin rằng tất cả tôi cần là <QueryOptions> và chỉ ra tên thư mục.  Đối với tôi, Tôi cần cả hai quấn nó bên trong <queryOptions> cũng như chỉ định một URL đầy đủ điều kiện cho các <Thư mục> nút.

Đây là thiết lập AJAX của jQuery:

$(tài liệu).sẵn sàng(chức năng() {
       var soapEnv =
           "<soapenv:Phong bì xmlns:soapenv =’http://schemas.xmlsoap.org/Soap/Envelope/’> \
               <soapenv:Cơ thể> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/Soap/’> \
                       <listName>Tùy chỉnh danh sách với tiểu thư mục</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef tên =' tiêu đề’ /> \
                              <FieldRef tên ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Thư mục>http://demoserver1/Blogging Kịch bản/danh sách tùy chỉnh danh sách với tiểu thư mục/năm 2006</Thư mục> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Cơ thể> \
           </soapenv:Phong bì>";

</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

SPD Workflow Patterns, Mẹo và thủ thuật

Tôi đã trình bày của tôi vào ngày hôm qua lúc SharePoint Fest ở Denver. Đây là PowerPoint trình bày chính nó: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

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

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

Lists.asmx, GetList và "giá trị không thể được null”

Tôi phát hiện ra ngày hôm nay rằng GetList() phương pháp trong lists.asmx Dịch vụ web đã được gọi là rất cẩn thận hoặc nó là dễ bị ném một bí ẩn "Giá trị hiện tại không thể được null" ngoại lệ (và đó giả sử bạn có thể vượt qua các thông báo lỗi chung tồi tệ hơn nữa, "Ngoại lệ của loại ' Microsoft.SharePoint.SoapServer.SoapServerException’ bị văng ra.")  Đặc biệt, Tôi thấy rằng bạn không thể cung cấp cho bất kỳ hình thức nào của tiền tố về phương pháp GetList.  Đoạn jQuery sau minh họa điểm:

image

Nếu bạn làm điều đó, Dịch vụ web đáp ứng với "Giá trị không thể được null" theo điều này Fiddler-cung cấp bảng điểm HTTP:

<?Phiên bản XML = "1.0" mã hóa = "utf-8"?>
  <xà phòng:Phong bì
     xmlns:xà phòng ="
http://schemas.xmlsoap.org/Soap/Envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <xà phòng:Cơ thể>
    <xà phòng:Lỗi>
      <faultcode>xà phòng:Máy chủ</faultcode>
      <faultstring>
        Các ngoại lệ của loại ' Microsoft.SharePoint.SoapServer.SoapServerException’ ném.
      </faultstring>
      <chi tiết>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/Soap/">
Giá trị không thể được null.
        </errorstring>
      </chi tiết>
    </xà phòng:Lỗi>
  </xà phòng:Cơ thể>
</xà phòng:Phong bì>

Tất nhiên, bạn có lẽ sẽ không thêm tiền tố "s0" đó ngày của riêng bạn, nhưng một số công cụ có xu hướng để làm điều đó (như Eclipse).

Điều này là khó hiểu tất cả chi tiết / bực bội vì các phương pháp khác chịu đựng tiền tố.  Ví dụ, các GetListCollection phương pháp không quan tâm nếu nó được mục, ngay cả với vô nghĩa tiền tố như "xyzzy":

image

Điều này "giá trị hiện tại không thể được null" có vẻ khá phổ biến với lists.asmx để hy vọng điều này sẽ giúp đỡ người ra trong tương lai.

</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

Vô tận làm tổ <div> Tags và jQuery

Điều này có vẻ như một chủ đề oddball, I 'm not sure it's thực sự giá trị viết blog về, nhưng đó đã không bao giờ ngừng lại tôi trước khi, Vì vậy ở đây chúng tôi đi Nụ cười

Tôi đang làm việc một dự án mà tôi kéo một số dữ liệu từ một tìm kiếm, đóng gói nó vào thư XML và sau đó là XML mà cuối cùng được chuyển đổi thành HTML thông qua XSLT.  Đó là rất nhiều của jQuery tham gia, một chút trong đó thực hiện một số chức năng tabbing.  Khi bạn bấm vào một tab (Thực sự, một <div>), jQuery invokes .hide() và .show() trên các divs (tải ban đầu trang tải tất cả nội dung, do đó, có không có postbacks trong trường hợp này).

Một loạt các giờ trước đây, tab chuyển mạch logic bắt đầu cư xử erratically và nó sẽ không hiển thị một trong các tab của tôi.  Theo tôi cuối cùng dõi nó xuống đến một thực tế rằng internet explorer (tối thiểu) nghĩ rằng các <div> Tags lồng nhau đến nay, sâu xa hơn nhằm mục đích.Thanh công cụ phát triển sẽ hiển thị:

-<DIV id = "Tab1Content">
  -<div>
    -<div>
      -<DIV id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-cuối cùng Hiển thị nó đã được đóng cửa tất cả các cách xuống ở đây!

Vì vậy, Nếu tôi đã làm một $("#Tab1Content").ẩn(), Tôi cũng sẽ ẩn Tab2 và tôi không bao giờ có thể hiển thị Tab2 nếu tôi cũng không cho Tab1.  Tôi sao chép và dán mã vào visual studio và nó cho thấy tất cả các div lót lên độc đáo, cũng giống như họ đã nghĩa vụ phải thực hiện, Tìm kiếm như thế này:

-<DIV id = "Tab1Content">
  +<div>
  +<div>
-<DIV id = "Tab2Content">
  +<div>
  +<div>

Tôi đánh đập đầu của tôi vào tường cho một thời gian và nhận thấy rằng trong thực tế HTML mã tạo ra rất nhiều sản phẩm nào <div> Download, giống như:

<cơ thể>

  <DIV id = "Tab1Content">

    <DIV id = "row1" />
    <DIV id = "row2" />

  </div>

  <DIV id = "Tab2Content">

    <DIV id = "row1" />
    <DIV id = "row2" />

  </div>

</cơ thể>

(Ở trên là waaaaaaaaaaaay đơn giản.  Các thẻ div có sản phẩm nào là hoàn toàn hợp lệ. Một số của tôi <div> Tags được đầy đủ các nội dung, nhưng nhiều hơn nữa không.  Tôi đến việc thực hiện đó của tôi <XSL:cho mỗi> chỉ thị phát ra các hình thức ngắn div tags khi xsl:cho mỗi không ' tìm thấy bất kỳ dữ liệu.  Tôi buộc phải bình luận một HTML đầu ra, như được hiển thị:

image

 

Sau khi tôi đã làm điều đó, Tất cả div xếp độc đáo và chuyển đổi thẻ của tôi bắt đầu làm việc.

Như mọi khi, Tôi hy vọng điều này sẽ giúp một người nào đó trong một pinch.

</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 khắc phục: "Tên kiểu nội dung '$ tài nguyên:ReportServerResources … không thể chứa … ký tự đặc biệt”

Tôi đã chi tiêu một số thời gian làm sạch lên một SharePoint 2010 Trang web và là một trong những vấn đề dọn dẹp liên quan đến một tham nhũng / không chính xác cài đặt dịch vụ báo cáo SQL Server vấn đề.  Vấn đề phát sinh khi một đồng nghiệp của tôi đã cố gắng để tiết kiệm một trang web như là một mẫu và sau đó tạo ra tạo ra một trang web mới dựa trên mẫu đó.  Lưu hoạt động hoạt động tốt, nhưng khi cô đã cố gắng để tạo ra các trang web mới, SharePoint Hiển thị thông báo lỗi sau:

Lỗi

Tên loại nội dung ' $Resources:ReportServerResources,DataSourceContentTypeName;' không thể chứa: \ / : * ? “ # % < > { } | ~ & , hai giai đoạn liên tiếp (..), hoặc các ký tự đặc biệt như một tab.

Đây là một màn hình nắp:

 

image

Tôi đã có một cái nhìn tại các loại nội dung trong các trang web và các mặt hàng này:

image

Những loại nội dung được rõ ràng không lành mạnh.

Vấn đề này dường như đi lên rất nhiều trên các Internets và có không có vẻ để là một sự đồng thuận duy nhất về làm thế nào để giải quyết nó.  Tôi tìm thấy một bảng tiện dụng mà ánh xạ tên kiểu nội dung xấu tới tên loại nội dung tốt ở đây: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Tôi tự Cập Nhật chúng thusly:

image

(BrightStarr trong tên là rõ ràng là tùy chọn, nhưng nó không thể làm tổn thương Nụ cười )

Điều này cho phép tôi để tạo ra một mẫu mới và đã không phá vỡ bất cứ điều gì trên các trang web khác, bao gồm một số công cụ máy chủ PerformancePoint rằng một nhóm hoàn toàn khác nhau của những người đã làm việc trên.  Tôi đã sau đó có thể tạo ra một trang web mới trên mẫu.  Thành công!

Tôi không chắc chắn đây là một 100% giải pháp, nhưng nó đã cho tôi và tất cả mọi người tham gia trong quá khứ này gây phiền nhiễu lỗi.  Nếu tôi tìm thấy bất cứ điều gì mới, Tôi sẽ đăng một bản Cập Nhật.  Lo lắng của tôi xuất phát từ thực tế rằng các tên không phải là sai trái tại địa điểm đầu tiên và bằng cách sửa chữa tên hiển thị, Tôi không chạm vào tên nội bộ. 

</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

Một trong những nguyên nhân cho "tác giả của lỗi này không nêu rõ lý do.”

Tôi đã làm rất nhiều công việc với SharePoint tìm kiếm gần đây và đặc biệt là các lớp học KeywordQuery, tài sản và phương pháp.

Nếu bạn muốn kết quả thiết lập để trở lại kết quả ở trên và vượt the usual suspects (xem ở đây), bạn thêm nó vào bộ sưu tập SelectedProperties, như trong:

myKeywordQuery.SelectProperties.Add("xyzzy");

Cảm ơn rất nhiều và một tip của mũ để Corey Rothbài đăng này rất hữu ích blog (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Trong trường hợp của tôi, "xyzzy" không phải là thực sự là một bất động sản được quản lý.  Khi tôi thêm nó vào SelectedProperties dù sao, SharePoint đã ném một trong những yêu thích của tôi bao giờ thời gian chạy ngoại lệ:

"Tác giả của lỗi này không nêu rõ lý do một."

Tôi đặc biệt thích vốn "R" trong lý do.  Điều này có vẻ với tôi tương đương .net"Tôi đã không có miệng, và tôi phải scream.”

</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

Tham khảo thuận tiện: Mặc định kết quả từ tìm kiếm KeywordQuery

Khi bạn gọi thi công() phương pháp trên một KeywordQuery, bạn có thể tạo ra một ResultTable dựa trên ResultType.RelevantResults.  Đoạn mã này minh họa những gì tôi có nghĩa là:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Bảng kết quả sẽ có các cột sau thông tin: 

WorkId
Đánh giá
Tiêu đề
Tác giả
Kích thước
Đường dẫn
Mô tả
Viết
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Tôi xuất phát từ danh sách này từ một SharePoint 2010 môi trường, Phiên bản doanh nghiệp.  Hy vọng rằng nó sẽ được thuận tiện cho một ai đó trong tương lai.

</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

Một lý do cho: "Không thể giải nén các tệp cab trong dung dịch”

Trong khi làm việc trên một visual studio web phần dự án ngày hôm nay, Tôi đã làm một tái-org nhỏ của một số tập tin phải được đưa vào thư mục _layouts như là một phần của quá trình triển khai. Đặc biệt, Tôi đổi tên một tập tin .js từ "TypeAhead.js" để "TypeAhead(cũ).js"  Tôi định để loại bỏ nó ngay sau khi kế nhiệm của nó "TypeAhead.js" chứng minh chính xác.  Nó trông như thế này:

image

Điều này ngay lập tức gây ra một vấn đề với visual studio, khi tôi đã cố gắng để triển khai các dự án:

Lỗi xuất hiện trong triển khai bước 'Thêm giải pháp': Không thể giải nén các tệp cab trong dung dịch.

Nó chỉ ra rằng bạn không nên đặt một ngoặc đơn trong tên tập tin.  Tôi gỡ bỏ các parens và mà giải quyết được vấn đề.

</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