22

カスタム プロセス (MyApp.exe) でファーム サーバーのインスタンスをインスタンス化しようとしSPSite、URI 全体 ( http://mysite:80/ ) をパラメーターとして指定します。また、実行中のアカウントが であることも確認しましMyApp.exeSite Collection Administrator

ただし、私がSPSiteやろうとしていることのインスタンスを作成することはできません。常に . をスローしFileNotFoundExceptionます。

誰でもアイデアを得ましたか?

スタックトレース:


C の MyCompanyName.Service.HelperClass.GetItemStateInSharePoint(SharePointItem アイテム)で Microsoft.SharePoint.SPSite..ctor(SPFarm ファーム、Uri requestUri、ブール値 contextSite、SPUserToken userToken)で Microsoft.SharePoint.SPSite..ctor(String requestUrl) で: \Workspaces\MyCompanyName\Development\Main\MyCompanyName.SharePoint\Service\HelperClass.cs: 555 行目

別の補足事項...ブラウザから問題なくアクセスできるWebアプリケーション+サイトコレクションがあります。

4

21 に答える 21

14

FileNotFoundException は、要求されたサイト コレクションが SharePoint 構成データベースで見つからない場合に、SharePoint によってスローされます。URL http://mysite:80でサイト コレクションをまだ作成していないと思います。存在しないサイト コレクションの URL を使用して新しい SPSite オブジェクトをインスタンス化しようとすると、次のスタック トレースが表示されます。

System.IO.FileNotFoundException : The site http://server/sites/bah could not be found in the Web application SPWebApplication 
Name=SharePoint - 80 Parent=SPWebService.
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(String requestUrl)

サイト コレクションの適切な URL を指定するか、サーバーの全体管理を開いて新しいサイト コレクションを作成します。

于 2008-11-05T19:42:44.843 に答える
12

ビルド プロパティのプラットフォーム ターゲットを x64 に変更すると、SharePoint 2010 でこの問題が解決しました。

于 2010-10-05T20:02:03.893 に答える
10

このサイトhttp://community.bamboosolutions.com/forums/t/8179.aspxをお読みください。OSx64ビットを実行していてMSTest(32ビット)を使用している場合は失敗します。nunitを使用してください!!!

于 2009-10-07T07:29:02.283 に答える
4

この問題は、より多くのユーザー権限の問題であり、次の権限を与えます

ユーザー権限 SharePoint サイト --- 最小読み取り権限

Sharepoint Server --- WSS_ADMIN_WPG グループに追加

データベース --- SharePoint コンテンツ DB (サイト コレクション データベース) - db_owner パーミッション Sharepoint Config DB (Sharepoint インストールの Config DB) - - db_owner パーミッション

私のブログでもっと読む

http://sharepointinstallation.blogspot.com/2010/12/minimal-permission-required-to-execute.html

于 2010-12-03T22:13:52.087 に答える
4

SharePoint 2010 にアクセスするコンソール アプリケーションの場合は、プロジェクトのビルド ターゲットが x64 で、.NET Framework が 3.5 であることを確認してください。

于 2011-01-28T05:17:44.347 に答える
2

オブジェクト モデルが、指定した URL を気に入らない可能性もあります。サイト コレクションを作成した正確な URL を提供しない場合、またはオルタネート アクセス マッピングで構成されている正確な URL を提供しない場合、必ずしも意味をなさない例外がスローされます。あなたの場合、http://mysiteまたはを試すことができますhttp://machinename

于 2008-11-05T19:44:47.913 に答える
1

私は最近、コンストラクターに関するこの問題が、コンストラクターのスターンジ動作によって引き起こされる可能性があることを発見しました。
私はMOSS2007について取り上げています。コンストラクターに完全なサイトURLを渡す場合、実際にはURLのサイト部分のみを考慮し、で「現在選択されている」Webアプリケーションを選択するように見えます。 Webアプリケーションセレクターコントロール。
したがって、たとえば、「http:// webapp / sites / site」があり、「http:// weabapp:22345」が現在選択されている場合(このようなセレクターで最後に選択したとき)、

SPSite site = new SPSite("http://webapp/sites/site")

「 http:// webapp:22345 / sites /site 」のサイトオブジェクトを実際に作成しようとして失敗します。

于 2008-12-20T11:56:03.933 に答える
1

私も同じ問題を抱えていました。ユーザーIDを使用してコンソールアプリケーションを実行したかった。私はWebアプリケーションの所有者+ファーム管理者です。それでもアプリケーションを実行できませんでした。

問題はによって解決されました

  1. ビルドプロパティのプラットフォームターゲットをx64に変更する

  2. サイト設定->ユーザーとアクセス許可->サイトコレクション管理者には2つの名前がありました。他の名前を削除し、動作を開始しました。

于 2011-02-03T13:09:41.640 に答える
1

これと同じ問題がありましたが、さまざまな原因についてはよく知っています。要約を以下に示します。

  1. 間違ったアドレスを入力したか、間違ったアドレスを入力した可能性があります
  2. プロセスを実行しているユーザー アカウントには、必要なアクセス許可がありません。SharePoint サイトへの読み取りアクセス許可、SharePoint 構成データベースの dbo、およびコンテンツ データベースです。
  3. 64 ビット サーバーでビルドする場合、プロセスは 64 ビット プロセス (デフォルトは 64 ビットの「すべての CPU」) である必要があります。
  4. プロセスは .NET 3.5 をターゲットにする必要があります
于 2014-01-21T21:14:57.177 に答える
1

プロジェクトのコンパイル ターゲットを「任意の CPU」に設定したままにすることができます。重要なのは、MSTest ホスト プロセスを 64 ビットで実行するように構成することです。.testsettings ファイルを開き、[ホスト] タブに移動して、[64 ビットでテストを実行...] を設定します。

この後、テストを実行したときにVSが何もないことを示した場合は、テストプロジェクトを削除して再度追加します(これに対するより良い回避策はわかりません)

それが役に立てば幸い!

于 2011-11-03T02:08:28.607 に答える
1

例外のスタックトレースが役立ちます。

ツール - >オプション - >デバッグで「自分のコードのみ」を無効にし、デバッガーが表示したときに例外のコールスタックでファイル名引数を調べることで、それがどのファイルで、何が起こっているのかをある程度理解できると思います(もちろんデバッグできる場合)、または名前が例外メッセージに表示される場合があります。

于 2008-11-05T19:27:25.357 に答える
1

web.config を確認し、ファイルが欠落している構成があるかどうかを確認します。

12 ハイブでログを探してください。ログ設定が正しい場合、ファイルが失われます。

編集: すべての DLL が GAC にあるかどうかも確認してください。web.config ファイルにすべての情報が含まれているかどうかを確認します: namespace,Classname, NameSpace, Version=version_number, Culture-your_culture, PublicKeyToken=your_signed_token

于 2008-11-05T19:27:58.790 に答える
0

私の場合、それは間違いなく、私が Windows にログインしていたアカウントの権限の問題でした。

管理者として実行されている SharePoint 管理シェルで次のコマンドを試してください。

Get-SPSite ' http://yoursite/yourcollection '

エラーが発生した場合は、アプリケーション プール ユーザーまたは SharePoint のインストールに使用したアカウントとして SharePoint サーバーにログオンし、上記のコマンドを再試行してください。

機能する場合は、以前のアカウントに権限の問題があることがわかります。この問題を解決するには、同じシェル ウィンドウで次のコマンドを実行し、VS で使用するアカウントを指定します。

Add-SPShellAdmin -ユーザー名 ドメイン\ユーザー

于 2015-04-10T02:54:36.703 に答える
0

同様の問題があります。

私のシナリオでは、コンソール アプリケーションから SPSite のインスタンスを作成できましたが、別のチーム メイトが作成しようとすると、アプリケーションは上記と同じ例外をスローしました。

解決策: 他のチームメイトを Content Db サーバー ボックスの管理者として追加しました (これは誰にとっても可能ではないかもしれません)。コードは正常に動作し、エラーは発生しません。

于 2009-12-02T21:37:56.627 に答える
0

数日前に同じ問題に直面しましたが、解決策は、SPSite オブジェクトを作成しようとしているアプリケーションが、Sharepoint の Web アプリケーションと同じ AppPool を使用するように設定することでした。

それが役に立てば幸い。

于 2009-06-15T21:24:42.133 に答える
0

SharePoint 2010 でも同じ問題が発生しました。ただし、問題は、SharePoint オブジェクト モデルにアクセスしていた Web サービスにありました。このサービスを実行するアプリケーション プールは、ファーム管理者である必要があります。

于 2013-01-30T16:08:24.077 に答える
0

私は数週間前にこれに悩まされていました。最終的に、見つからなかったファイルは SharePoint アセンブリそのものであることがわかりました。ランタイムは、遅延バインディングによるサテライト アセンブリの読み込みに失敗していました。

私の問題の解決策は、SharePoint 12.0.0.0 アセンブリを GAC に登録することでした。あなたの問題と同じようには聞こえませんが、参考までに。

于 2008-11-05T19:34:18.247 に答える
0

x64 の問題に関する MSTest が、この問題の原因でした。コンソール アプリで動作します。

于 2009-11-03T18:34:12.240 に答える