カテゴリーアーカイブ: SharePoint 開発

竹カレンダー対話 SharePoint 原因と"予期しないエラー"が発生しました

今日, いくつかの改善のコラボレーションで竹予定表 web パーツを使用する環境で働いてきた. 標準的な中・小農場の 2 つの負荷分散 Wfe でこれ, インデックス作成のための「アプリケーション サーバー」InfoPath とクラスター化された SQL バック エンドと.

クライアントは、Wfe の 1 つにいくつかの災害復旧ソフトウェアをインストールおよびサイト コレクション内の特定のサイトに壊れた WFE の結果. 負荷分散とそのサイトの影響を受ける WFE で指摘をするたびに, ユーザーは、「予期しないエラーが発生しました」文と主に空白の画面を見た. その他の情報を示した, ちょうどその文.

彼らはそれを見て私に尋ねた. 私は問題を簡単に再現し、追加、 ?内容、URL の末尾に 1 を =. これは如何に竹 web パーツを使用していた彼らは. ページ行きと今, 突然, それは私に素敵な整然としたエラー メッセージを示した:

image

何が起こっていたか以外の追加を表示するコントロールのエラー メッセージを得るために何を知らないの ?内容 = クエリ文字列の 1 ビット.

これはおそらくそのメッセージを得る場合は非常にまれなエッジ ケースです。, 「予期しないエラーが発生しました」先に行くし、追加 ?内容をクエリ文字列に 1 を = し、を参照してください.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ: ,

Microsoft.SharePoint.dll の反射板を使用します。

Redgate .NET リフレクター Michael ブルーメン タール 入れている、 アラートおよび表示についての記事 ("ビューすることができます使用する警告を作成するとき ?"), 独自のメリットに興味を持っています。. ただし, どのように彼は念入りレッドゲートの .NET Reflector を使用してのプロセスを介して歩くを参照してくださいにさらに興味を持ちました. 一歩一歩, 彼はそのツール トラック ダウン SharePoint リストに対するビューが"subscribable べきであるかどうかを判断する方法を使用する方法を示します" 良い言葉の欠如 (彼はこれについて私よりもずっと上手に説明しています 🙂 ).

この時点で、SharePoint の時代, 聴覚障害者とか聞いたことがないがそのツールを使用して詳細にブラインドする必要がほとんど. それはものを進んでいるし、私自身の感覚は、それは多くの方法で最後の手段のツール. ただし, それを必要が本当に知っていないと思うかどうかはどのように, マイケルの書き込みこの主題上の偉大なチュートリアルのように思える.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ: , ,

予定表ビューで予定表アイテムの並べ替え

特定の日にパネル ディスカッションを追跡するカレンダーを使用しています. 私は 2 つのセッションがあります。: 午前と午後. セッション ID を介してアルファベットだけ午前中のセッションを表示するビューを作成します。. これは達成するために少しトリッキーです。 (実際は明らかに何かを逃した場合).

その日のイベントだけを表示するフィルター処理されたビューを作成する簡単にすることができます。. これらのすべてのイベントが表示されます、予定表やなら、彼らはすべて同じ時間を置き, 横に並べて一覧表示されます時間スロットに. 素晴らしい. トリッキーな部分は、します。, 既定では, ID 形式でそれらを一覧表示したいです。. だから, 追加する場合"セッション 02" 「セッション 01" 予定表に, それはその順序でそれらを示しています (すなわち, セッション 02 その後のセッション 01). セッション ID の順序でそれらをリストするには, これらの事をしようとする考え:

  1. Web ユーザー インターフェイスを使用してビューを構成します。. 運がないです。. この方法でアイテムを並べ替えるためのオプションがないです。.

    それはうまくいきませんので, 私は今、CAML クエリ、並べ替えを無効にさせてそこにどこかにはあると期待して. CQWP は、私の種類を変更することができます。, 多分カレンダーも同じ?

  2. Web パーツを編集します。, 「エクスポートを探す" 関数と … BZZZT! その XML をエクスポートできません。. エクスポート オプションはありません。.

    私はまだ検索できいくつかの CAML クエリを変更することの希望を持ってください。. Web パーツをエクスポートできませんので, SharePoint Designer を葉します。.

  3. 私はサンド ボックス サイトに予定表 web パーツを追加し、SharePoint デザイナーを使用してそのサイトを開く. Web パーツのマークアップを見て、私は私が探しているものを見つける. それに狂気をエンコード, しかし、そこです。: "<ListViewXml …. >エンコードされた狂気</ListViewXml>". 具体的には, この宝石があります。:

<クエリ>
<どこ>
<DateRangesOverlap>
<FieldRef 名"EventDate"=/>
<FieldRef 名 =「終了日」/>
<FieldRef 名"RecurrenceID"=/>
<値のタイプ ="DateTime">
<1 ヶ月/>
</値>
</DateRangesOverlap>
</どこ>
<OrderBy><FieldRef 名 ="Session_x0020_ID" /></OrderBy>
</クエリ>

(私をデコードした、 &lt;や &gt を明確にするための複数の行にそれらを分割).

追加、 <OrderBy> ビットし、今セッション ID 順に並べ替えます, 内部リスト アイテム ID ではないです。.

巨大なヒント o’ 帽子 ベッキー Isserman イシャー鷺のブログの記事へのコメントは彼女の: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. 我慢できないだろう、 <OrderBy> 適材適所彼女のコメントなし.

これを詳しく書くより明確にスクリーン ショットとすぐに期待します。, しかし、私は決してしない場合, 少なくとも私はこのくらいをでした。.

</終了>

SharePoint の機能 & ソリューション管理 — CRUD の U を忘れないでください。 (またはその事柄のための D)

私たちは総称して多大な SharePoint ソリューションを考える時間を費やしてください。 — それらを作成する方法, 使用するツール, 展開に失敗したときの動作します。, タイマー ジョブ, スコープ, など. 我々 は我々 が同様にそれらを撤回する必要があることを忘れてしまいがちだという先行ビットについて考えてそんなに時間を過ごす. ソリューションを取り消すはおそらく困難, 概念設計の観点から, それらを展開するよりも. 展開は基本的に料理事件です。. 通常, 機能をインストールします。, 多分、リストにいくつかのデータを読み込む機能レシーバーがあります。, そのようなこと. ただし, 複雑な可能性がありますは取り消す.

特定のソリューションは、これらのような成果物を作成する可能性があります。:

  • コンテンツ タイプ
  • リスト定義
  • サイト定義
  • リスト内のデータ
  • 受信機
  • InfoPath フォーム

リスト上で行く.

これらの成果物を正しくインスタンス化する中、明らかに、ソリューションを設計することが重要です。, それは更新を考慮し削除の場合と同様に重要. ソリューションが新しいリストを作成、そのリストにデータを設定する場合, ソリューションが取り消されるときに何が起こるか? いくつかのケースで, リストを削除する必要があります。. その他の場合, それはそのまま歴史的目的のため左する必要があります。. 正しい判断に導くビジネス要件.

これを支援するには, ソリューションを SharePoint に展開の各成果物が一覧表示されます行列を作成します。. アイテムごとの 3 つの列を一覧表示します。, 作成するための 1 つ, 更新と削除. それぞれのケースについて, その操作の正しい結果を決定します。.

今まで SharePoint ファームに展開されている前に、分析のこの並べ替えが行われる明らかに最高. ただし, 喫煙のような, それは正しく物事を始めるには遅すぎます。. その行列を作成し、行方不明の更新/削除のシナリオに対処するための計画を策定. 解決困難な問題があります。, しかし、少なくとも、問題を回避ボックスを入れているよ.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Technorati のタグ:

迅速な修正プログラム: Web サービス SharePoint と相互作用します。, InvalidOperationException

100 万年前, 私は助け SharePoint Designer ワークフローのカスタム アクションによって呼び出された web サービスを開発. 今週, クライアントは、生産に移動したいです。 (最後に!) だから我々 でした。.

カスタム アクションは見事に働きました, それが呼び出された web サービスはしなかった, 私たちのこのエラーを与える:

されて: この操作は SQL Server が構成データベースから読み取るでアクセス許可を持つユーザーによって、サーバー ファームに参加しているコンピューター上でのみ実行できます。. このサーバーをサーバー ファームに接続するには, SharePoint 製品とテクノロジ構成ウィザードを使用します。, 管理ツールの [スタート] メニュー上にあります。.
Microsoft.SharePoint.Administration.SPWebApplication.Lookup で(Uri requestUri)

IIS で、SharePoint のアプリケーション プールにサービスを追加するを忘れたことが判明します。. かつて私はその, それは見事に働きました.

この MSDN フォーラムの投稿は私に私は必要な手がかりを与えた: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</終了>

私のブログを購読します。.

Twitter で私に従ってください。: http://twitter.com/pagalvin

Technorati のタグ:

迅速で簡単な: SPItemList の SPFolder を取得します。

私はこの問題に実行し続けるし、Google は決してやりたいを理解すると思われる, ダウンこれを書くでしょう考え出したので.

最後の 1 週間または 2 つのデバッグ イベント レシーバーの多くを行ってきた. 小胞体は、ドキュメント ライブラリに対して定義されて. ドキュメント ライブラリ内の個々 の項目は、親フォルダーと密接に関係します。. だから, 私は常に様々 な操作の項目のフォルダーを得ること. デバッグ中, 私は知っている ID の特定の項目のフォルダーのメタデータを更新するために必要な.

ここでは少しコンソール アプリケーションです。 (ファーム内のサーバー上で実行するように設計) 2 つの引数を受け取る: 項目と値のフィールドに割り当てる ID, 「承認状態」. それは難しいものの多くのコードし、エラー チェックを持たない.

コードは、ハード コーディングされたサイトを検索します。, ハード コーディングされたドキュメント ライブラリを取得し、指定されたアイテムを検索. そのアイテムの親フォルダーを検索し、ステータス値を割り当てます.

ここで私にとって重要な教訓は、SPItem がフォルダーへのアクセスを取得していないこと. SPListItem.File を使用する必要があります。.

誰にも気を批判を提供したり、アイテムのフォルダーを取得するより良い方法を提案する場合, くださいコメントを残す.

<コード>
使用してください。 システム;
使用してください。 その他;
使用してください。 System.Text;
使用してください。 Microsoft.SharePoint;
使用してください。 System.Collections;

名前空間 Conchango
{
    /// <概要>
 /// </概要>
 クラス ManualFolderUpdate
    {
        静的 void メイン(文字列[] args)
        {
            文字列 msh = "ManualFolderUpdate (v1.0): "; // msh ="メッセージのヘッダー"

 コンソール.WriteLine(msh + "を開始.  私は最終 08/08/04 に更新されました。");

            文字列 url = http://localhost/xyzzy;

            使用してください。 (SPSite oSPSite = 新機能 SPSite(url))
            {

                使用してください。 (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["ドキュメント"];

                    コンソール.WriteLine(msh + 「ドキュメント ライブラリを得た。");

                    コンソール.WriteLine(msh + "Doc lib 項目カウント: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    文字列 再入国 = "xyzzy";

                    FolderID = システム.変換.ToInt32(args[0].ToString());
                    コンソール.WriteLine(「アイテムのフォルダーを求めています。: [" + FolderID + "].");

                    SPListItem 李 = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder li を =。File.ParentFolder;

                    コンソール.WriteLine(msh + "親フォルダーを得た。");

                    再入国 args を =[1].ToString();
                    コンソール.WriteLine(「状態をを設定 [" + 再入国 + "].");

                    コンソール.WriteLine(「リターンを押してを中止する CTRL C または更新をコミットします。");

                    コンソール.ReadLine();

                    thisItemFolder.Item["承認の状況"] = (再入国;
                    thisItemFolder.Item.Update();

                    コンソール.WriteLine(msh + 「フォルダーの更新が完了.  終了しています。");

                } // SPWeb を使用してください。

            } // SPSite の使用

 コンソール.WriteLine(msh + 「終わった。");

        } // メイン

    } // クラス集合的
} // 名前空間
</コード>

</終了>

私のブログを購読します。.

SharePoint でカスタム アクションを非表示

数ヶ月前, クライアントのプロジェクトに取り組んでいる間, フィーチャを作成しました. 他のものの間で, その機能定義カスタム アクション (これらのサイトの設定の下で表示されます。). このカスタム アクションの唯一の目的は機能のアクティブ化は期待どおりに働いていたことを私に示して、. 基本的には, デバッグの原油フォームとしてそれを使用します。.

私の当惑への多く, このデバッグ アーティファクト UAT し生産する dev からの道を作ったは、誰かが得たの周り前に, "リンクは何ですこの xyzzy?"

今では, われわれは生産および機能を削除したくない本当に, elements.xml を修正し、再インストール.

トッド Bleaker それを処理する簡単な方法を指摘しました。. 彼の言葉で:

"CustomActions にはコピーされず、データベース, Elements.xml ファイルから直接読み取るされ、実行時にアプリケーションの状態にコピー. だから, 非アクティブ化する必要はありません。, アンインストール, 再インストールします。, CustomAction を削除する機能を再アクティブ化. Elements.xml ファイルから削除し、アプリケーション プールのリサイクル(s) 影響を受ける. スコープに含まれる機能は、次の時間, CustomAction はもう表示されません。"

彼の指示をに従って、, もちろんです, 彼ら仕事します。.

私の場合, これはちょうど 1 つの WFE を部門レベルのインストール. 複数の WFE のと将来的にこの問題を自分自身を見つける場合, 各に変更を加える必要がありますと信じています.

</終了>

私のブログを購読します。.

Technorati のタグ: ,

迅速な修正プログラム: SharePoint サイトへのアクセスをスローします [HttpException (0x 80004005): 要求がタイムアウトしました。]

開発者の私の同僚の 1 つは今週プロジェクトに取り組んでいたし、いくつかのクレイジー web パーツの構築に取り組んでいる間タイムアウト問題に遭遇しました。. 彼の web パーツは大丈夫だった, 唐突だけど」" 関係のないサイトになった非常に遅く、頻繁にタイムアウトにこのエラーが発生:

[HttpException (0x 80004005): 要求がタイムアウトしました。]

私はログインしているし、他のいくつかのサイトがうまくを見た. 私はページの一部の非表示 web パーツがあった疑いがあると使用 信頼 ?内容 = 1 デバッグ テクニック, 私は実際には見つけました 11 ページ上の web パーツ, うちの 2 つのみに表示されていた. さらに良い (let's-hope-I-find-something-ugly-here-that-I-can-fix の観点から), 閉じた web パーツの 3 つの「エラー」の名前を持っていた.

それらの web パーツを削除 (自体は驚くほど長い時間がかかった) 問題を解決します。. 今日のために🙂

</終了>

私のブログを購読します。.

Technorati のタグ:

WSS から SSRS Web サービスの呼び出し / Fba の処理環境でコケ

"CreateSubscription を起動するために必要" FBA でホストされている SSRS web サービス上のメソッドは、カスタム web パーツから MOSS 環境を管理. 変動を受け続けました:

  • 401: 承認されていません。
  • 移動されたオブジェクト

「オブジェクトの移動" それを言っていたのでメッセージを最も興味深いでした"オブジェクト" (SSRS サービス) 「移動していた" login.aspx. これは明らかに、我々 は認証の問題のいくつかの種類を持っていたもの.

私は最終的に私がいたことに気づいた ブログ エントリのブックマーク FBA 環境中に住んでいる汎用 WSS/MOSS の web サービスを呼び出す方法を解説したロバート ・ ギャレットによって. 記事に直接リンクできないことに注意してください。 (の 06/09/08) 認証したいので. 「すべての投稿に私を提供するリンクは、します。" ビューと「フォーム ベース認証を使用してにアクセスする MOSS の Web サービス」を検索して、特定の記事を見つけることができます。.

ここでは私たちのために働いたコードです。:

ReportingService2006 rs = null; 
// 認証 認証 auth = 新機能 認証(); 
認証Url = "http://URL/_vti_bin/Authentication.asmx";
認証CookieContainer =
新機能 CookieContainer();
LoginResult 結果 = 認証ログイン(「ユーザー id」, 「パスワード」);
場合 (結果。エラー コード = = LoginErrorCode.NoError) 
{
// エラーなし, だからクッキーを取得します。.
CookieCollection クッキー認証を =CookieContainer.GetCookies(新機能 Uri(認証Url));
クッキー authCookie = cookie[結果。CookieName];
rs =
新機能 ReportingService2006();
rs。Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs。CookieContainer =
新機能 CookieContainer();
rs。CookieContainer.Add(authCookie);
}
してください。
{
  rs。CreateSubscription(レポート, extSettings, desc, eventType, matchData, parameters1);
}
キャッチ (Ex 例外)
{
  Console.WriteLine(ex.Message.ToString());
}

このような動作するように物事を解釈します。:

  • ダイヤルアップの認証サービスと言う必要があります私たち web パーツ, "ねえ, トニー, それは私です。!".
  • 認証サービスとの返信します。, "ねえ, あなたを知っています。. どのように子供たちをします。? ここではトークンです。"
  • 私たちは、SSRS サービスを呼び出すし、言う, 「トニー送って, ここでは、トークンです。"

</終了>

私のブログを購読します。.

Technorati のタグ: , ,

迅速かつ簡単な: C# で SharePoint オブジェクト モデルを使用して Web サイトの準備します。

サイト コレクションで新しい spweb インスタンスを作成する方法を示すだろう少しのスニペット コード探してみる. 一緒に件名に少しエントリ私スラップだろうと思ったので私が期待どおりにすばやく、簡単に、それを見つけられませんでした。.

このコードは、新しい Wiki サイトを作成します:

 SPSite サイト コレクション;

    サイト コレクション = 新機能 SPSite("http://conchang o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy タイトル",
        「xyzzy 説明", 1033, SPWebTemplate.WebTemplateWIKI, false, false);

「Sharepoint オブジェクト モデルを使用して web サイトを提供するようなフレーズを探していたので私の最初の検索が失敗しました" など.

場合します。 検索 "Webs.Add のため()", 非常に有用なブログのエントリの数を見つける, Msdn ライブラリのドキュメントとこの主題の深さに入る SDK ドキュメント. 私は間違いなくお勧め このサイト.

</終了>

私のブログを購読します。.

Technorati のタグ: