Arsip Kategori: Pengembangan SharePoint

Salah satu alasan untuk "satu atau lebih bidang jenis tidak diinstal dengan benar”

Aku membuat tweak kecil kemarin untuk sebuah web bagian yang tidak CAML query terhadap daftar.  Saya membuat perubahan, ini dan tertembak dengan kesalahan:

Kesalahan tak terduga telah terjadi di tiga hari Outlook ramalan cuaca WebPart. Silakan hubungi administrator sistem. Satu atau lebih jenis field tidak diinstal dengan benar. Pergi ke halaman pengaturan daftar untuk menghapus bidang ini.

Aku sedang menghadapi masalah eksentrik lain sebelumnya sehingga saya tidak segera terhubung CAML query dengan kesalahan yang SharePoint melaporkan kepada saya.  Saya melakukan pencarian bing cepat dan dan menemukan posting membantu blog ini oleh Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Here's the query buruk:

permintaan.Query ="<Di mana><Dan><Neq><FieldRef nama = 'Abbr' /><Jenis nilai = 'Teks'>SFNY</Nilai><FieldRef nama = 'Abbr' /><Jenis nilai = 'Teks'>SFIS</Nilai></Neq></Dan></Di mana>";

Di sini adalah tetap:

permintaan.Query ="<Di mana><Dan><Neq><FieldRef nama = 'Abbr' /><Jenis nilai = 'Teks'>SFNY</Nilai></Neq><Neq><FieldRef nama = 'Abbr' /><Jenis nilai = 'Teks'>SFIS</Nilai></Neq></Dan></Di mana>";

Jadi, moral dari cerita ini: Pastikan Anda CAML benar atau Anda mungkin mendapatkan error eksentrik.

Berlangganan ke blog saya.

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

</akhir>

SharePoint 2010 Solusi yang terjebak dalam "menggelar” Status

Aku dulu PowerShell menyebarkan solusi untuk SharePoint pertanian (h/t:  Corey Roth dan posting blog). 

Saya kemudian pergi ke admin tengah, Diakses pengaturan sistem dan kemudian "Mengelola pertanian solusi" menyebar ke peternakan dan untuk saya (sedikit) cemas, itu terjebak dalam "menggelar".

Saya telah melihat masalah ini datang berkali-kali di Forum MSDN, Jadi aku cukup gugup.  Saya mencari sekitar sedikit dan menemukan artikel ini membantu (oleh orang tampaknya Fitzgerald http://www.resolutionsnet.co.uk/).  Saya dibatalkan pekerjaan penyebaran dan ketika saya mengklik ke dalam larutan, itu mengatakan kepada saya bahwa telah berhasil digunakan solusi untuk tiga dari empat server di peternakan.

Aku pergi ke server bandel, berhenti layanan timer dan ulang itu.  Windows server sebenarnya mengatakan kepada saya bahwa layanan gagal untuk menanggapi perintah, Jadi yang mengatakan bahwa itu sakit.

Saat ini, ketika aku kembali ke admin tengah, Saya mampu untuk menyebarkan tanpa masalah.

Mudah-mudahan ini sedikit info akan membantu beberapa dalam mengikat satu hari.

</akhir>

Berlangganan ke blog saya.

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

Kesalahan of the Day: "Tidak dapat menambahkan Majelis tertentu ke GAC”

Aku sudah berjuang sedikit dengan visual studio 2010 pada solusi sp2010 dan mendapatkan kesalahan ini:

Terjadi kesalahan dalam langkah penyebaran 'Menambahkan solusi': Kesalahan: Tidak dapat menambahkan Majelis ditetapkan untuk perakitan global cache: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Aku pergi ke GAC sendiri (c:\windowsassembly) untuk mencoba dan menghapus dan punya kesalahan "file digunakan".

Aku iisreset, Saya hampir download SysInternals, Aku berhenti layanan timer di Services akhirnya, Saya baru saja ditutup dan dibuka kembali visual studio sendiri dan saya akhirnya bisa untuk menutupnya.

</akhir>

Berlangganan ke blog saya.

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

Cepat dan mudah: Debugging VS 2010 Solusi penyebaran

Visual Studio 2010 laporan kesalahan keras debug selama penyebaran beberapa kali.  Cara yang cepat dan mudah untuk melakukan beberapa sangat kasar debugging adalah untuk melemparkan Anda sendiri bernama pengecualian.  Visual Studio akan menunjukkan kepada mereka dalam output konsol.

Pertimbangkan ini sedikit kode:

image

Jika fitur ini scoped untuk aplikasi web, situs akan menjadi nol.  Jika Anda mencoba dan referensi properti situs, Anda akan mendapatkan kesalahan ambigu:

Terjadi kesalahan dalam langkah penyebaran 'Menambahkan solusi': Referensi objek yang tidak diatur ke contoh sebuah objek.

Namun, Jika; melemparkan baru pengecualian dan lulus string ke konstruktor, Anda mendapatkan pesan yang sedikit lebih berguna:

image

Ini adalah teknik yang kasar, tapi cukup cepat dan mudah.

</akhir>

Berlangganan ke blog saya.

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

FeatureActivated pekerjaan timer dan fitur lingkup

Saya telah bekerja dengan beberapa kode yang seseorang menyerahkan kepada saya untuk pekerjaan timer.  Dia tidak memberikan kode aktivasi fitur sebenarnya jadi saya harus menulis, Tentu saja.  Aku mengambil keuntungan dari Posting blog terkenal Andrew Connell pada subjek.

Saya menggunakan Visual Studio 2010 dan penyebaran terus gagal dengan galat "terjadi kesalahan dalam langkah penyebaran 'Tambah solusi': Referensi objek tidak diatur ke contoh benda."

Aku mengambil kode nya terlalu harfiah.  Aku scoping fitur untuk level aplikasi web, seperti yang ditunjukkan:

image

Akibatnya, sifat-sifat yang dikirim ke penerima yang dari aplikasi web, tidak kumpulan situs.  Di ujung, kode seperti ini:

publik override void FeatureActivated(SPFeatureReceiverProperties properti)
{

    // Jangan melakukan hal berikut dengan web app scoped fitur, itu mengarah kepada putus asa Tersenyum
    // SPSite site = properti.Feature.Parent sebagai SPSite;

    SPWebApplication wa = properti.Feature.Parent sebagai SPWebApplication;

    Jika (wa == null) Throw new Exception("webapp2 nol.");

    foreach (SPJobDefinition pekerjaan di wa.JobDefinitions)
    {

        coba
        {
            Jika (pekerjaan.Nama == List_JOB_NAME)

                pekerjaan.Hapus();
        }
        menangkap (Exception e)
        {
            Throw new Exception("penanda 2");
        } // menangkap exception e
    }

    // menginstal pekerjaan

    WeatherForecastTimerJob weatherForecastTimerJob =
        baru WeatherForecastTimerJob(List_JOB_NAME, wa);

    Jadwal SPMinuteSchedule = new SPMinuteSchedule();
    jadwal.BeginSecond = 0;
    jadwal.EndSecond = 59;
    jadwal.Interval = 5;
    weatherForecastTimerJob.Schedule = jadwal;
    weatherForecastTimerJob.Update();

}

Tombol yang dibawa pulang adalah bahwa ketika fitur scoped untuk aplikasi web, SPFeatureReceiverProperties yang SharePoint lolos ke penerima fitur Anda memiliki web app tingkat parameter.  Andrew tua blog entry menganggap itu scoped ke situs koleksi.

</akhir>

Berlangganan ke blog saya.

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

Mana Apakah Microsoft.SharePoint.ApplicationPages.Administration.dll?

Aku menyerahkan sebuah visual studio proyek yang referensi Microsoft.SharePoint.ApplicationPages.Administration.dll.  Aku butuh sedikit sementara untuk menemukan itu dan saya pikir saya akan berbagi.  Di lingkungan saya, Terletak di:

c:\Program filescommon program sharedweb server extensions14configadminbin

</akhir>

Berlangganan ke blog saya.

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

Proyek CodePlex – SP2010 Explorer

Sebagai bagian dari upaya terus-menerus untuk mempelajari rincian teknis tingkat rendah SharePoint 2010, Saya telah membuat "SharePoint Explorer"jenis alat.  Gagasan bukanlah hal baru.  Saya menggunakan proyek ini lebih dari sekali: http://sharepointexplorer.codeplex.com/.  Ide saya adalah untuk menciptakan sebuah versi SharePoint bahwa menggunakan terhubung bagian web untuk menunjukkan semua detail tingkat rendah bahwa object model dapat menyediakan. 

Posting blog ini berfungsi sebagai kedua pengumuman proyek serta panggilan untuk sukarelawan.  Jika Anda tertarik untuk bekerja pada proyek ini, Beritahu saya via email (Galvin.Paul@Gmail.com) dan kami akan bekerja.

Berikut adalah proyek: http://sp2010explorer.codeplex.com/

</akhir>

Berlangganan ke blog saya.

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

Bekerja dengan TreeNodeBinding dalam ASP.NET Treeview kontrol

Saya telah bekerja pada apa yang saya harap akan segera dirilis CodePlex proyek yang menyediakan sedikit terpadu bagus bagian web yang berbicara satu sama lain melalui penyedia konsumen koneksi untuk menjelajahi situs SharePoint di bawah selimut.  (Ini tentu saja telah dilakukan sebelum, Tapi ini adalah proyek belajar sebanyak apa pun).  Hal ini dimaksudkan untuk menjadi pengganti tampilan explorer windows SharePoint 2010 dokumen Perpustakaan.

Kode telah rekursif biasa yang memanggil menurunkan SPWeb dan SPLists dari diberikan mulai titik.  Objek yang melakukan semua yang melintasi membangun string XML yang terlihat seperti ini:

<sitecollection url =’http://demo2010a:9090′>
 
<Web
     title = 'Halo dunia Sandbox' 
     Template =' situs untuk tim untuk cepat mengatur, penulis, dan berbagi informasi, BLA BLA BLA '>

     <Daftar
        title ='BCC_Health_Services_FAQs’
        Template ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</Daftar>

     <Daftar
        title = 'BCC_Notifications' 
        Template = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </Daftar>

  </Web>

</sitecollection>

Saya berharap untuk membersihkan up yang XML sebelum semua dikatakan dan dilakukan.

Saya ingin akhirnya mendapatkan informasi bahwa atas dan ke dalam Treeview kontrol.  Bukan bumi menghancurkan barang.

Tantangan saya mengambil di sini adalah untuk menghubungkan tampilan struktur pohon ke kontrol sumber XML Data daripada secara manual membangun treenodes saya seperti yang saya melintasi pohon.  Saya melakukan ini sebagian karena aku sengaja membuat hal lebih keras pada diri saya sendiri (ini adalah proyek belajar setelah semua) dan sebagian karena aku punya gagasan samar-samar yang membangun node pohon seperti saya melintasi pohon bukan ide yang baik untuk jangka panjang.

Masalahnya dengan pendekatan ini adalah bahwa kontrol Treeview tidak tahu tentang baik atribut pada node menarik seperti "daftar" atau "web" Jadi itu menunjukkan output ini secara default:

 

image

Itu tidak berguna.  Ini adalah dimana kalangan TreeNodeBinding membantu.  Aku bisa menggunakan ini untuk memberitahu Treeview kontrol bagaimana itu harus menafsirkan XML.  Berikut adalah contoh:

tnb = TreeNodeBinding baru();
tnb.DataMember = "daftar"; // Ini adalah label dalam xml untuk situs.
tnb.TargetField = "listid";
tnb.ValueField = "judul";
tnb.ToolTipField = "Template";

Mengikat ini memberitahu treeview bahwa ketika ia menemukan <Daftar> node dalam XML, menerapkan fungsi untuk TargetField, ValueField dan ToolTipField.  Mei app, ini peta sebagai berikut:

  • TargetField: Bila seseorang mengklik pada nilai node, ini adalah apa yang Anda akan mendapatkan untuk SelectedNode.Value.  Hal ini tidak menjadi bingung dengan...
  • ValueField: Ini adalah apa yang Anda inginkan Treeview untuk menampilkan kepada pengguna.
  • ToolTipField: Nilai dari XML yang Anda inginkan sebagai Tooltip.

Tambahkan TreeNodebinding ke tampilan struktur pohon DataBindings dan Anda mendapatkan output seperti ini:

 

image

Saya akan memiliki lebih pada semua ini sebagai saya melanjutkan proyek dan akhirnya menempatkan ini di Codeplex.

</akhir>

Berlangganan ke blog saya.

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

Menghubungkan teks bidang filter untuk bagian Web kustom Anda

Saya ingin menerima informasi dari filter bidang teks dalam SharePoint 2010 menjadi bagian web kustom saya.  Aku mencoba menggunakan Artikel MSDN ini sebagai dasar tetapi artikel baik rusak atau saya hanya tidak mengikuti itu benar.

Sedikit lebih mencari muncul Mike Smith MSDN kontribusi Sini (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Ada banyak hal luar sana di bagian connectable web tapi Mike artikel sebagai sederhana karena mendapat.

</akhir>

Berlangganan ke blog saya.

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

Cepat dan mudah: Mengirim Email menggunakan Gmail SMTP Server di .net C#

Ini bukan topik yang baru, tapi ketika aku diperlukan untuk melakukannya, Saya menemukan banyak "Mengapa tidak akan pekerjaan ini untuk saya" dan jawaban langsung yang tidak terlalu banyak. Saya berharap seseorang menemukan ini berguna.

Berikut sedikit kode akan mengirim email menggunakan account gmail saya sendiri untuk melakukannya, termasuk lampiran:

menggunakan System.net.mail;
menggunakan System.net;

NetworkCredential loginInfo = baru NetworkCredential("[ID Gmail saya]", "[Gmail kata sandi]");
MailMessage MSG = baru MailMessage();
MSG.Dari = baru MailAddress("[M Gmail Id]Gmail.com");
MSG.To.Add(baru MailAddress("paul.galvin@arcovis.com"));
MSG.Subjek = "Test infopath dev subjek";
MSG.Tubuh = "<HTML><bodyHTMLan >><  kuat >  pesan yang kuat.</strong>  </body>  </html> "><kuat>Pesan yang kuat.</kuat></bodyHTMLan >><  kuat >  pesan yang kuat.</strong>  </body>  </html> "></HTML>";
MSG.IsBodyHtml = benar;

foreach (string aFile dalam NIPFD.GetAttachmentNamesAndLocations())
{
    MSG.Attachments.Add(baru Lampiran(aFile));
} // Menambahkan lampiran.

SmtpClient klien = baru SmtpClient("smtp.gmail.com");
klien.EnableSsl = benar;
klien.UseDefaultCredentials = palsu;
klien.Kredensial = loginInfo;
klien.Pelabuhan = 587;
klien.EnableSsl = benar;
klien.Kirim(MSG);

Beberapa bit kunci itu diperlambat saya turun dan pengamatan lain / Catatan:

  • Baris pertama yang menciptakan objek loginInfo perlu menggunakan gmail ID dilucuti dari "Gmail.com”. Jadi, Jika alamat email gmail saya "sharepoint@gmail.com"dan password saya adalah"xyzzy"maka garis akan terlihat seperti:

NetworkCredential loginInfo = baru NetworkCredential("sharepoint", "xyzzy");

  • Gmail account diatur untuk menggunakan SSL dan itu bukan masalah.
  • Ada beberapa informasi yang saling bertentangan di luar sana pada apa port untuk menggunakan. Saya menggunakan port 587 dan itu bekerja dengan baik bagi saya.
  • Dalam kasus saya, Saya juga perlu mengirim lampiran. Objek NIPFD yang memiliki metode yang tahu mana my lampiran. Kembali jalan sepenuhnya (misalnya. "c:\tempattachment1.jpg". Dalam pengujian saya, Aku punya dua lampiran dan mereka berdua bekerja dengan baik.

Saya menggunakan visual studio 2008 untuk menulis kode ini.

</akhir>

Berlangganan ke blog saya.

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

Technorati Tags: ,,,