0

私は興味深い状況に直面しています。WPFアプリケーションとSilverlightアプリケーションの両方からSharePointサイトアセットライブラリにアクセスする必要があります。Silverlightアプリケーションは100%動作していますが、WPFアプリケーションはサービスから(500)内部サーバーエラーを受け取ります。

Silverlightコード:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ClientContext clientContext = new ClientContext("http://myfullyQualifiedName.com");
        clientContext.Load(clientContext.Web);
        clientContext.ExecuteQueryAsync(onQuerySucceeded, onQueryFailed);
    }

    private void onQuerySucceeded(object sender, ClientRequestSucceededEventArgs args)
    {

    }

    private void onQueryFailed(object sender, ClientRequestFailedEventArgs args)
    {

    }

WPFコード:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ClientContext clientContext = new ClientContext("http://myfullyqualifiedname.com/");
        //clientContext.Credentials = new NetworkCredential("UserName", "Password", "Domain");
        clientContext.Load(clientContext.Web);
        clientContext.ExecuteQuery();
    }

クレデンシャルを指定して、または指定せずに試しましたが、どちらの方法でも内部サーバーエラーが発生します。

私が使用しているSilverlightとSilverlight以外のSharepointクライアントDLLはどちらもバージョン14.4762.1000です。

URLを他のサイトの1つに変更すると、WPFコードは問題なく機能します。ですから、どこかでSharePointの設定に違いないと思います。

4

1 に答える 1

1

解決しました!! Silverlight が機能しているときに WPF 認証が機能しない理由。(WPF は Kerberos を使用しようとしていましたが、Silverlight は NTLM を使用していました) - 簡単な修正:

ClientContext _clientContext = new ClientContext(sharePointSiteUrl);
Web _web = _clientContext.Web;

_clientContext.Load(_web, website => website.Title);
_clientContext.Load(_web.Webs);

CredentialCache cc = new CredentialCache();
cc.Add(new Uri(sharePointSiteUrl), "NTLM", CredentialCache.DefaultNetworkCredentials);
_clientContext.Credentials = cc;
_clientContext.AuthenticationMode = ClientAuthenticationMode.Default;

_clientContext.ExecuteQuery();
ListCollection _listCollection = _web.Lists;
于 2012-02-26T12:16:44.230 に答える