12

LINQPadが大好きです!LINQPadのWCFコネクタを使用してTridionCoreServicesに接続し、Coreの迅速な開発と学習を支援しようとしています。

現在、LINQPadはURIの404(見つかりません)エラーを報告していますが、これと同じURIが私のブラウザーで機能します。

他の誰かが正常に接続しますか?

LINQPadの接続ウィンドウ

LINQPadの接続ウィンドウ

4

3 に答える 3

13

LINQPadは、コアサービスAPIを介してTridionと対話するための私の選択ツールです。

プレーンなLINQPadをダウンロードするだけで、WCFデータサービス(通常はODataソースと呼ばれます)、SQL Serverデータベース、およびAzureDataServices市場に接続できます。Tridionのコアサービスはこれらのタイプのいずれでもないため、永続的な接続を作成することはできません。

ただし、次の手順に従うことで、VisualStudioの軽量な代替手段としてLINQPadを使用できます。

  1. LINQPadの言語を「C#プログラム」に切り替えます
  2. 以下のコードスニペットを貼り付けます
  3. コードスニペットから必要なDLL参照を追加します
  4. コードスニペットから必要な名前空間参照を追加します
  5. ホスト名、ユーザー名、パスワードに独自の値を指定する
  6. コードを書く

LINQPadは複数の言語を処理できます。デフォルトは「C#式」です。これは、コードパネルで単一の「ステートメント」を指定できることを意味します。これは、たとえばドライバーが利用可能なSQLデータベースを操作する場合にはうまく機能しますが、Tridionのコアサービスと対話するには十分ではありません。したがって、最初に、クエリの上部にあるツールバーで「C#式」言語から「C#プログラム」言語に切り替える必要があります。

言語を切り替えた後、私は通常、次の定型文から始めます

void Main()
{
    // System.Runtime.Serialization.dll
    // System.ServiceModel.dll
    // System.Net.dll
    // Namespaces:
    // System.Net
    // System.ServiceModel
    // Tridion.ContentManager.CoreService.Client
    var binding = new NetTcpBinding { MaxReceivedMessageSize = 2147483647, ReaderQuotas = new XmlDictionaryReaderQuotas { MaxStringContentLength = 2147483647, MaxArrayLength = 2147483647 } };
    var endpoint = new EndpointAddress("net.tcp://<hostname>:2660/CoreService/2011/netTcp");
    var DEFAULT_READ_OPTIONS = new ReadOptions();

    CoreServiceClient client = new CoreServiceClient(binding, endpoint);
    client.ChannelFactory.Credentials.Windows.ClientCredential = new NetworkCredential("<username>", "<password>");
    try {
        // TODO: fill in the blanks
    } finally {
        if (client.State == CommunicationState.Faulted) client.Abort(); else client.Close();
    }    
}

このコードを貼り付けた後、[クエリのプロパティ]ウィンドウ(F4)を開き、を追加してSystem.Runtime.Serialization.dll、[追加の参照]タブに追加します。マシンにTridion.ContentManager.CoreService.Client.dllのコピーがあることを確認し、それへの参照も追加します。(これはサーバーのTridion / bin / clientにあります)System.ServiceModel.dllSystem.Net.dll

を追加しSystem.Net、[追加のネームスペースのインポート]タブに追加します。System.ServiceModelTridion.ContentManager.CoreService.Client

<hostname>コードの、、<username>および値を変更し<password>、接続が成功するかどうかをテストします。

この後、空欄に記入して、CoreServiceAPIを楽しんでください。

Core Service APIドキュメント(CHM形式)を常に開いたままにしておくことをお勧めします。そのオープンで、オートコンプリートがなくてもかなり遠くまで行けることがわかりました。また、作成したクエリを保存すると、ctrl-shift-Cを使用して簡単にクローンを作成し、言語、DLL参照、名前空間が既に入力された新しいクエリを作成できます。

アップデート

LINQPadからTridionに接続する簡単な方法は、https ://sdltridionworld.com/articles/sdltridion2011/using_linqpad_with_tridion.aspxに記載されています。

于 2012-10-26T02:06:55.690 に答える
12

これを読んでください:http://markistaylor.com/2010/09/09/linqpad-beyond-linq/System.ServiceModel.dllと[Tridion_Home]\binへの参照を追加することでこれを行うことができるようです\ client \ Tridion.ContentManager.CoreService.Client.dll([クエリ]-> [クエリプロパティ]の下)からLINQPadへ。

于 2012-03-12T20:56:41.563 に答える
2

コンテンツマネージャのIISログを確認できます-LINQPaD接続の試行から404が表示されますか?そのページは実際に存在しますか?

于 2012-03-12T18:06:03.757 に答える