Arsip Kategori: Pengembangan SharePoint

Bambu kalender berinteraksi dengan SharePoint menyebabkan "terjadi error"

Hari ini, Saya telah bekerja di lingkungan yang menggunakan bagian web kalender bambu untuk kolaborasi beberapa perbaikan. Ini standar kecil/menengah pertanian dengan dua WFEs beban seimbang, sebuah "server aplikasi" untuk mengindeks dan InfoPath dan berkerumun SQL kembali akhir.

Klien menginstal beberapa perangkat lunak pemulihan bencana ke salah satu WFEs dan yang mengakibatkan WFE rusak untuk situs tertentu di situs koleksi. Setiap kali load balancing menunjuk WFE terkena dan situs, pengguna melihat layar putih kosong sebagian besar dengan kalimat "terjadi error". Info tidak lain menunjukkan, hanya bahwa kalimat.

Mereka meminta saya untuk melihatnya. Aku mudah direproduksi masalah dan kemudian menambahkan ?isi = 1 sampai akhir URL. Ini adalah bagaimana saya belajar mereka menggunakan bagian web bambu. Aku kembali ke halaman dan sekarang, tiba-tiba, itu menunjukkan pesan kesalahan tertib baik:

image

Aku tidak tahu apa yang terjadi atau apa yang saya lakukan untuk mendapatkan pesan kesalahan yang dikontrol untuk menampilkan lain daripada menambahkan ?isi = 1 bit dari string permintaan.

Ini mungkin adalah sangat jarang edge kasus tetapi jika Anda mendapatkan pesan bahwa, "Terjadi kesalahan tak terduga" pergi ke depan dan menambahkan ?isi = 1 untuk string permintaan dan melihat mana yang mengarah.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Technorati Tags: ,

Menggunakan reflektor pada Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal telah memasang artikel tentang peringatan dan dilihat ("Pemandangan yang dapat digunakan ketika membuat lansiran ?"), menarik pada kemampuannya sendiri. Namun, Aku bahkan lebih tertarik untuk melihat bagaimana ia metodis berjalan melalui proses menggunakan Redgate's net reflektor. Langkah demi langkah, Dia menunjukkan bagaimana menggunakan alat melacak itu turun cara SharePoint menentukan apakah pandangan pada daftar harus "subscribable" karena tidak ada kata yang lebih baik (he explains this much better than I do 🙂 ).

Pada titik ini dalam SharePoint era, Anda hampir harus menjadi tuli dan buta tidak mendengar atau membaca tentang menggunakan alat tersebut. Ini telah maju barang dan perasaan saya sendiri adalah bahwa dalam banyak cara alat terakhir. Namun, Jika Anda berpikir Anda perlu tetapi tidak benar-benar tahu bagaimana, Michael's write-up tampak seperti besar tutorial pada subjek ini.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Item kalender penyortiran di tampilan kalender

Saya menggunakan kalender untuk melacak diskusi panel pada hari tertentu. Aku punya dua sesi: pagi dan sore. Saya ingin membuat tampilan yang menunjukkan sesi pagi hanya tercantum berdasarkan abjad melalui session ID. Ini sedikit rumit untuk mencapai (kecuali aku melewatkan sesuatu yang nyata jelas).

Saya dapat dengan mudah membuat pandangan disaring menampilkan hanya hari itu peristiwa. Kalendar akan menunjukkan semua peristiwa itu dan jika mereka semua mengambil tempat pada saat yang sama, Daftar mereka berdampingan dalam slot jam. Itu bagus. Bagian yang sulit adalah bahwa, secara default, ingin daftar mereka dalam ID format. Jadi, Jika saya menambahkan "sesi 02" dan kemudian "sesi 01" ke kalender, ini menunjukkan mereka dalam urutan (yaitu, Sesi 02 dan kemudian sesi 01). Ke daftar mereka dalam urutan Session ID, Saya berpikir untuk mencoba hal-hal ini:

  1. Mengkonfigurasi tampilan menggunakan antarmuka pengguna web. Tidak beruntung. Ada tidak ada pilihan untuk mengurutkan item dengan cara ini.

    Karena itu tidak bekerja, Aku sekarang berharap ada CAML query di suatu tempat di sana yang akan memungkinkan saya untuk mengganti jenis. CQWP membuat saya dapat membuat jenis perubahan, mungkin kalender akan serta?

  2. Mengedit bagian web, mencari "ekspor" fungsi dan … BZZZT! Saya tidak dapat mengekspor XML yang. Ada tidak ada pilihan ekspor.

    Aku masih bertahan harapan bahwa saya dapat menemukan dan memodifikasi beberapa CAML query. Karena saya tidak dapat mengekspor bagian web, bahwa daun SharePoint Designer.

  3. Saya menambahkan bagian web kalender ke situs sandbox dan membuka situs tersebut menggunakan SharePoint Designer. Saya melihat markup untuk bagian web dan saya menemukan apa yang saya sedang mencari. Itu telah dikodekan kegilaan, Tapi itu ada: "<ListViewXml …. >kegilaan dikodekan</ListViewXml>". Khusus, ada permata ini:

<Query>
<Di mana>
<DateRangesOverlap>
<FieldRef nama = "EventDate" />
<FieldRef nama = "EndDate" />
<FieldRef nama = "RecurrenceID" />
<Jenis nilai = "DateTime">
<Bulan />
</Nilai>
</DateRangesOverlap>
</Di mana>
<OrderBy><FieldRef nama = "Session_x0020_ID" /></OrderBy>
</Query>

(Aku didekode &lt;di dan &gt's dan membagi mereka keluar beberapa baris demi kejelasan 's).

Tambahkan <OrderBy> bit dan sekarang itu mengurutkan menurut Session ID, tidak ID item daftar internal.

O raksasa tip’ topi ke Becky Isserman untuk komentar ke posting blog Isha Sagi: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Aku tidak akan menaruh <OrderBy> di tempat yang tepat tanpa komentar.

Saya berharap untuk menulis ini lebih jelas dengan screen shot segera, tetapi jika aku pernah melakukan, setidaknya aku tidak sebanyak ini.

</akhir>

SharePoint fitur & Solusi manajemen — Jangan lupa U di CRUD (atau D hal)

Kolektif kita menghabiskan banyak waktu untuk memikirkan solusi SharePoint — cara membuat mereka, alat yang digunakan, apa yang terjadi ketika mereka gagal untuk menyebarkan, pekerjaan timer, cakupan, dll. Kami menghabiskan begitu banyak waktu untuk berpikir tentang bit muka yang mudah untuk melupakan bahwa kita perlu untuk menarik mereka serta. Mencabut solusi mungkin lebih sulit, dari perspektif desain konseptual, daripada menjalankan mereka. Penggunaan pada dasarnya adalah urusan cookbook. Biasanya, menginstal fitur, mungkin memiliki sebuah feature receiver yang memuat beberapa data ke dalam daftar, hal semacam itu. Namun, pemasaran berpotensi lebih kompleks.

Solusi yang diberikan dapat membuat artefak seperti ini:

  • Jenis konten
  • Daftar definisi
  • Definisi situs
  • Data dalam daftar
  • Bahkan receiver
  • Bentuk-bentuk InfoPath

Daftar goes on.

Sementara itu jelas penting untuk merancang sebuah solusi yang instantiates artefak yang benar, sangat penting untuk mempertimbangkan update dan menghapus kasus. Jika solusi Anda menciptakan daftar baru dan saran populates daftar itu dengan data, apa yang terjadi ketika solusi ditarik? Dalam beberapa kasus, Daftar harus dihapus. Dalam kasus lain, itu harus dibiarkan utuh untuk tujuan historis. Kebutuhan bisnis Anda akan membimbing Anda untuk keputusan yang tepat.

Untuk membantu dengan ini, membuat matriks yang mencantumkan setiap artefak yang menyebarkan solusi Anda untuk SharePoint. Daftar tiga kolom per artefak, satu untuk membuat, Update, dan delete. Untuk setiap kasus, menentukan hasil benar untuk operasi yang.

Analisis semacam ini jelas terbaik dilakukan sebelum solusi pernah ditempatkan ke sebuah peternakan SharePoint. Namun, seperti Rokok, itu tidak pernah terlalu terlambat untuk mulai melakukan hal-hal dengan benar. Matriks yang menciptakan dan mengembangkan sebuah rencana untuk mengatasi skenario update/menghapus hilang. Ini mungkin menjadi masalah sulit untuk memecahkan, tapi setidaknya Anda akan menempatkan kotak sekitar masalah.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Technorati Tags:

Perbaikan cepat: Layanan web yang berinteraksi dengan SharePoint, InvalidOperationException

Satu juta tahun yang lalu, Membantu mengembangkan layanan web yang dipanggil melalui tindakan kustom untuk alur kerja SharePoint Designer. Minggu ini, klien ingin pindah ke produksi (akhirnya!) Jadi kita melakukan.

Tindakan kustom yang bekerja dengan baik, tapi layanan web itu dipanggil tidak, memberikan kita kesalahan ini:

System.InvalidOperationException: Operasi ini dapat dilakukan hanya pada komputer yang bergabung dengan server peternakan oleh pengguna yang memiliki izin dalam SQL Server untuk membaca dari konfigurasi database. Untuk menyambung server ini ke server peternakan, menggunakan SharePoint Products and Technologies Configuration Wizard, terletak di menu mulai menjalankan di Administrative Tools.
di Microsoft.SharePoint.Administration.SPWebApplication.Lookup(URI requestUri)

Ternyata bahwa aku lupa untuk menambahkan layanan ke kolam aplikasi SharePoint di IIS. Setelah saya melakukan itu, bekerja dengan baik.

Posting forum MSDN ini memberi saya petunjuk yang saya butuhkan: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan: http://twitter.com/pagalvin

Technorati Tags:

Cepat dan mudah: Mendapatkan SPFolder SPItemList

Aku terus berlari ke dalam masalah ini dan Google sepertinya tidak pernah mengerti apa yang ingin saya lakukan, Jadi saya pikir saya akan menulis ini turun.

Saya telah melakukan banyak acara Penerima debugging di minggu terakhir atau dua. ER didefinisikan terhadap pustaka dokumen. Setiap item dalam dokumen perpustakaan erat terkait dengan folder induk. Jadi, Saya selalu mendapatkan folder item untuk berbagai manipulasi. Sementara debugging, Saya perlu untuk memperbarui metadata folder item spesifik ID saya tahu.

Berikut adalah sedikit aplikasi konsol (dirancang untuk menjalankan pada server di peternakan) yang membutuhkan dua argumen: ID dari item dan nilai untuk menetapkan ke sebuah field, "Persetujuan Status". Sulit kode banyak hal dan memiliki tidak pengecekan error.

Kode terlihat situs kode keras, mendapatkan pustaka dokumen kode keras dan kemudian menemukan item ditunjukkan. Kemudian menemukan folder induk dari barang dan menetapkan nilai status.

Pelajaran kunci di sini bagi saya adalah bahwa SPItem tidak mendapatkan akses ke folder. Anda perlu menggunakan SPListItem.File.

Jika siapa pun yang peduli untuk menawarkan kritik atau menyarankan cara yang lebih baik untuk mendapatkan folder item, Silakan Tinggalkan Komentar.

<Kode>
menggunakan Sistem;
menggunakan System.Collections.Generic;
menggunakan System.text;
menggunakan Microsoft.SharePoint;
menggunakan System.Collections;

namespace Conchango
{
    /// <Ringkasan>
 /// </Ringkasan>
 kelas ManualFolderUpdate
    {
        statis Batal Utama(string[] args)
        {
            string msh = "ManualFolderUpdate (v1.0): "; // msh = "pesan Header"

 Konsol.WriteLine(msh + "Memulai.  Saya terakhir diubah pada 08/04/08.");

            string URL = http://localhost/xyzzy;

            menggunakan (SPSite oSPSite = baru SPSite(URL))
            {

                menggunakan (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Dokumen"];

                    Konsol.WriteLine(msh + "Punya dokumen perpustakaan.");

                    Konsol.WriteLine(msh + "Doc lib item count: [" + docLib.ItemCount + "].");

                    Int FolderID = 0;
                    string NewStatus = "xyzzy";

                    FolderID = sistem.Mengkonversi.ToInt32(args[0].ToString());
                    Konsol.WriteLine("Mencari folder Item: [" + FolderID + "].");

                    Objek SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Konsol.WriteLine(msh + "Punya folder induk.");

                    NewStatus = args[1].ToString();
                    Konsol.WriteLine("Pengaturan status untuk [" + NewStatus + "].");

                    Konsol.WriteLine("Tekan kembali untuk melakukan pembaruan atau CTRL-C untuk membatalkan.");

                    Konsol.ReadLine();

                    thisItemFolder.Item["Status persetujuan"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konsol.WriteLine(msh + "Selesai memperbarui folder.  Keluar.");

                } // menggunakan SPWeb

            } // menggunakan SPSite

 Konsol.WriteLine(msh + "Selesai.");

        } // Utama

    } // foldersync kelas
} // namespace
</Kode>

</akhir>

Berlangganan ke blog saya.

Technorati Tags:

Menyembunyikan Custom tindakan di SharePoint

Beberapa bulan yang lalu, Ketika bekerja pada sebuah proyek untuk seorang klien, Saya membuat sebuah fitur. Antara lain, Fitur yang didefinisikan tindakan kustom (ini muncul di bawah pengaturan situs). Satu-satunya tujuan untuk tindakan kustom ini adalah untuk menunjukkan kepada saya bahwa aktivasi fitur bekerja seperti yang diharapkan. Pada dasarnya, Saya menggunakannya sebagai bentuk mentah debugging.

Banyak rasa malu, artefak debugging ini membuat jalan dari dev UAT dan produksi sebelum seseorang mendapat sekitar untuk meminta, "apa itu link ini xyzzy?"

Sekarang, kami produksi dan aku benar-benar tidak ingin menghapus instalan fitur, memperbaiki elements.xml dan kemudian instal ulang.

Todd Bleaker menunjukkan cara mudah untuk mengatasinya. Dalam kata-katanya:

"CustomActions tidak disalin ke dalam database, mereka membaca langsung dari Elements.xml file dan disalin ke aplikasi negara pada saat runtime. Jadi, Anda tidak perlu menonaktifkan, uninstall, Pasang, dan mengaktifkan kembali fitur untuk menghapus CustomAction. Hanya menghapusnya dari Elements.xml file dan mendaur ulang kolam aplikasi(s) dilakukan. Waktu berikutnya fitur ini dalam lingkup, Anda tidak akan melihat CustomAction lagi."

Aku mengikuti instruksi dan, Tentu saja, mereka bekerja.

Dalam kasus saya, ini adalah Departemen tingkat instalasi dengan hanya satu WFE. Jika Anda menemukan diri Anda dengan masalah ini di masa depan dan beberapa WFE, Saya percaya Anda harus membuat perubahan di setiap.

</akhir>

Berlangganan ke blog saya.

Perbaikan cepat: Mengakses situs SharePoint melempar [HttpException (0x 80004005): Permintaan timed out.]

Salah satu rekan-rekan developer saya bekerja pada sebuah proyek minggu ini dan berlari ke masalah timeout ketika bekerja pada bangunan bagian web gila beberapa. Bagian web nya adalah baik-baik saja, Tapi "tiba-tiba" situs terkait yang menjadi sangat lambat dan sering habis dengan kesalahan ini:

[HttpException (0x 80004005): Permintaan timed out.]

Saya log in dan melihat bahwa beberapa situs lainnya saja. Saya menduga bahwa ada beberapa bagian web tersembunyi di halaman dan menggunakan terpercaya ?isi = 1 debug teknik, Aku bahkan menemukan 11 bagian web di Halaman, hanya dua di antaranya yang terlihat. Bahkan lebih baik (dari perspektif let's-hope-I-find-something-ugly-here-that-I-can-fix), tiga bagian-bagian tertutup web memiliki nama "Kesalahan".

Aku menghapus bagian-bagian web (yang itu sendiri mengambil waktu yang sangat lama) dan yang memecahkan masalah. For today 🙂

</akhir>

Berlangganan ke blog saya.

Technorati Tags:

Invoking layanan Web SSRS dari WSS / MOSS di FBA lingkungan

Kami perlu untuk memanggil "CreateSubscription" metode pada SSRS layanan web yang di-host di FBA dikelola MOSS lingkungan dari bagian web kustom. Kami terus mendapatkan variasi:

  • 401: Tidak diizinkan
  • Objek bergerak

"Objek bergerak" pesan ini paling menarik karena itu mengatakan bahwa "objek" (pelayanan SSRS) telah "pindah" untuk login.aspx. Ini jelas berarti kita memiliki semacam masalah otentikasi.

Saya akhirnya menyadari bahwa aku punya bookmarked blog entry oleh Robert Garret yang menggambarkan bagaimana untuk memohon layanan web WSS MOSS tujuan umum dalam lingkungan FBA. Perhatikan bahwa saya tidak link langsung ke artikel (seperti 06/09/08) karena ingin mengotentikasi. Link yang saya berikan membawa Anda ke "semua posting" Lihat dan Anda dapat mencari artikel dengan mencari "Mengakses layanan MOSS Web menggunakan otentikasi berbasis bentuk".

Berikut adalah kode yang bekerja untuk kami:

ReportingService2006 rs = null; 
// Otentikasi Auth otentikasi = baru Otentikasi(); 
otorisasiURL = "http://URL/_vti_bin/Authentication.asmx";
otorisasiCookieContainer =
baru CookieContainer();
Hasil LoginResult = otorisasiLogin("userid", "password");
Jika (hasil.ErrorCode == LoginErrorCode.NoError) 
{
// Tidak ada kesalahan, Jadi mendapatkan cookie.
Cookie CookieCollection = otorisasiCookieContainer.GetCookies(baru URI(otorisasiURL));
Cookie authCookie = cookie[hasil.CookieName];
RS =
baru ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
baru CookieContainer();
RS.CookieContainer.Add(authCookie);
}
coba
{
  RS.CreateSubscription(Laporan, extSettings, desc, eventType, matchData, parameters1);
}
menangkap (Pengecualian ex)
{
  Console.WriteLine(mantan.Message.ToString());
}

Menginterpretasikan hal bekerja seperti ini:

  • Bagian web kita perlu dial up layanan otentikasi dan mengatakan, "Hei, Tony, saya!".
  • Layanan otentikasi menjawab mengatakan, "Hei, Saya tahu Anda. Bagaimana Apakah anak-anak? Berikut adalah tanda."
  • Kami menelepon layanan SSRS dan mengatakan, "Tony mengirimi saya, Berikut ini adalah token."

</akhir>

Berlangganan ke blog saya.

Cepat dan sederhana: Menyediakan situs Web yang menggunakan Model objek SharePoint dalam C#

Aku mencoba mencari sedikit potongan kode yang akan menunjukkan bagaimana saya dapat membuat SPWeb baru dalam situs koleksi. Saya tidak menemukan sebagai cepat atau mudah seperti yang saya harapkan jadi saya pikir saya akan menampar bersama sedikit catatan pada subjek.

Kode ini menciptakan situs Wiki baru:

 SPSite siteCollection;

    siteCollection = baru SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy judul",
        "xyzzy Deskripsi", 1033, SPWebTemplate.WebTemplateWIKI, palsu, palsu);

Pencarian awal saya gagal karena saya sedang mencari frase seperti "menyediakan situs web menggunakan model objek sharepoint" dan sejenisnya.

Jika Anda pencarian untuk "Webs.Add()", Anda akan menemukan jumlah entri blog yang sangat berguna, Artikel MSDN dan dokumentasi SDK yang masuk ke mendalam tentang subjek ini. Saya merekomendasikan situs ini.

</akhir>

Berlangganan ke blog saya.

Technorati Tags: