1

こんにちは、powershell から共有ポイント リストにアクセスしようとしています。powershell スクリプトは、ac# アプリケーションから実行されます。

C# アプリケーションから実行すると、次の例外が発生します。

"1" 個の引数を指定して ".ctor" を呼び出す例外: "Web アプリケーションhttp://pc/websites/Test4/が見つかりませんでした。URL を正しく入力したことを確認してください。URL が既存のコンテンツを提供する必要がある場合は、システム管理者が追加する必要がある場合があります意図したアプリケーションへの新しいリクエスト URL マッピング。」

私のコード:

C#

     string cmdArg = "C:\\Scripts\\GroupChangeGroup.ps1 1";
                    Runspace runspace = RunspaceFactory.CreateRunspace();
                    runspace.ApartmentState = System.Threading.ApartmentState.STA;
                    runspace.ThreadOptions = PSThreadOptions.UseCurrentThread;
                        runspace.Open();
                    Pipeline pipeline = runspace.CreatePipeline();

 Command newcom = new Command("Add-PSSnapin");
                      newcom.Parameters.Add("Name", "microsoft.exchange.management.powershell.e2010");
                      pipeline.Commands.Add(newcom);

                  Command newcom2 = new Command("Add-PSSnapin");
                  newcom2.Parameters.Add("Name", "Microsoft.SharePOint.POwershell");
                  pipeline.Commands.Add(newcom2);

                    pipeline.Commands.AddScript(cmdArg);
                    pipeline.Commands[0].MergeMyResults(PipelineResultTypes.Error, PipelineResultTypes.Output);
                    Collection<PSObject> results = pipeline.Invoke();
                    var error = pipeline.Error.ReadToEnd();
                    runspace.Close();

パワーシェル

$site = New-Object Microsoft.SharePoint.SPSite("http://pc/websites/Test4/")
$web = $site.OpenWeb()
$list = $web.Lists["GroupsList - ListInstance1"]
$listitem = $list.Items.GetItemByID(3)

PS からアプリケーションを実行しても問題ありません。(同じユーザー コンテキスト)

ユーザーはのメンバーですWSS_ADMIN_WPG

4

1 に答える 1

1

SharePoint は .Net 4.0 では機能しません。PowerShell は .Net 3.5 で動作するため、PS で動作します。

.Net 3.5 SP1 に戻す必要があります。

また、X86 コンパイル設定で実行しないようにプロジェクトを設定してください。

AnyCPU または x64 に設定します。

于 2012-06-27T08:20:50.720 に答える