0

Dynamics CRM 展開に Microsoft のソーシャル ネットワーキング ソリューション アクセラレータを実装しようとしています。コードに関する多くの問題はすでに解決していますが、最後の問題には困惑しています。Social Networking Accelerator (以降、SNA と呼びます) は、次のコードを使用して Twitter からデータを取得します。

        case "GET":
            WebClient wCli = new WebClient();
            if (_creds != null)
            {
                wCli.Credentials = _creds;
            }
            try
            {
                using (Stream str = wCli.OpenRead(_URL))
                {
                    using (StreamReader reader = new StreamReader(str))
                    {
                        responseXml = reader.ReadToEnd();
                    }
                }
            }
            catch (WebException ex)
            {
                if (ex.Response is HttpWebResponse)
                {
                    if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
                    {
                        return null;
                    }
                }
                throw ex;
            }

明らかに、このコードを呼び出す前に多くのセットアップがあります。

Visual Studio 内、または Dynamics CRM の外部のテスト ハーネス内でこのコードを実行すると、期待どおりに動作し、Twitter から返された XML を含む文字列が返されます。

しかし、CRM システム内で (ワークフローの一部として) 実行すると、コードが wCli.OpenRead(_URL) を実行するポイントで「プロトコル エラー」が表示されます。私は実行を追跡しましたが、どちらの場合も同じ URL と Twitter 資格情報が使用されています。CRM システムの外部ではすべてが機能し、CRM の内部では次のエラーが発生します。

{"The remote server returned an error: (403) Forbidden."}

これは、私が ISA Web プロキシ サーバーの背後で実行していることが原因であると思われますが、ISA のログ コンソールは、Web 要求がそこまで到達していないことを示しています。何かがソースでこれを停止させています。誰にも何か提案がありますか?

4

1 に答える 1

0

これが実際にはプロキシの問題であることを確認しました。なぜそれが問題なのか完全にはわかりませんが、この小さな修正を試してみましたが、うまくいきました。

        case "GET":
            WebClient wCli = new WebClient();
            if (_creds != null)
            {
                wCli.Credentials = _creds;
            }
                //[TPL] Configure web proxy
                IWebProxy proxy = new WebProxy("sbs", 8080);
                proxy.Credentials = new NetworkCredential(@"DOMAIN\User", "password");
                wCli.Proxy = proxy;
            try
            {

明らかに、これは何らかの方法で構成可能にする必要がありますが、その概念は証明されています。

于 2010-01-18T23:25:06.637 に答える