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;
}
明らかに、このコードを呼び出す前に多くのセットアップがあります。
- _creds には、有効な Twitter ユーザー資格情報が含まれています。
- _URL に「http://twitter.com/statuses/replies.xml?since_id=1&page=1」が含まれています
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 要求がそこまで到達していないことを示しています。何かがソースでこれを停止させています。誰にも何か提案がありますか?