2009-02-26 10 views
0

ルート共有サイトの下に仮想ディレクトリを作成しました。この仮想ディレクトリは、匿名でアクセスされるWebサービスをホストします。SharePoint、FBAおよびSPContextの問題での匿名アクセス

using(SPSite site = new site(some uri)) 
{ 
    using(SPWeb web = site.RootWeb) 
    { 
     SPList list = web.Lists["SomeList"]; 
     SPListItem item = list.GetItemById(1); // Exception Here, COM Exception   
    } 
} 

RunWithElevatedPrivilegesを使用した場合でも、これは動作しません。私たちは次のことを行っているコードで 。

ただし、HttpContext.Currentがnullに設定されている場合、SPSiteを作成する前にすべて正常に動作します。

これがなぜ起こっているかについての説明は非常に役に立ちます。

敬具、

答えて

0

これが問題の原因ではないかもしれないが、あなたのSPWebは、Microsoftのベストプラクティス文書hereの蒸留である、Roger Lamb hereあたりとして、処分する必要はありません。

+0

同様の問題に直面し、このスレッドを参照してください。 http://mphacker.spaces.live.com/blog/cns!8040CC624DDC5404!290.entry –

+0

これはあなたへの答えである場合それを回答として提出し、同意する - それは、同様の問題を抱えている人を助けるでしょう。 –

0

それどころか! SPSiteがあなたのためにあなたのSPWebを廃棄することは間違いないが、常にヌルをチェックし、SPSiteとSPWebを明示的に処分することをお勧めします。

そして、それはより頻繁に通常より少しをリサイクルするワーカープロセスを引き起こすこと最悪のいずれか :-)問題の一部ではありません...

あなたはおそらくいくつかのより多くのコードを追加することができます(クラス全体)。

エラーの完全なスタックトレースも含めてください。 (ここでスタックトレースとデバッグを有効にする方法の詳細http://blogs.importchaos.com/alonsorobles/2008/06/09/enabling-the-sharepoint-safe-mode-call-stack-disabling-custom-errors-and-enabling-compilation-debugging/

また、リストと項目が存在し、匿名アクセスを許可していると思いますか?

よろしく アンダースラスク

+0

実際にコードを処理しているSPWebを処分することは可能です.RootWebで実行している場合は、サイトがダウンしてしまいます。 –

+0

Andyは正しいです。 SPSiteオブジェクトは作成されているため処分する必要があります。 SPWebオブジェクト(Site.RootWeb)は処分する必要はありません。 – Jason

+0

SPWebを使用して処理します。リストとアイテムは存在し、匿名ユーザーがアクセスできます。 WebとListの両方のハンドルを取得できます。しかし、私が試して、リスト項目を開くとき.... COM例外 –

関連する問題