SSIS 2008 C#スクリプトコンポーネント(.NET 3.5)でここにあるOAuthBaseクラスを使用しています。
正常に動作していますが、最近、同じデータフロータスクで複数のスクリプトコンポーネントを実行し、上記のOAuthBaseクラスのGenerateNonceメソッドを使用すると、同じナンス(乱数)になるという問題が発生しました。
ナンスを生成するOAuthBaseクラスからの抜粋を次に示します。
using System;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace OAuth {
public class OAuthBase {
....snip......
protected Random random = new Random();
public virtual string GenerateNonce() {
// Just a simple implementation of a random number between 123400 and 9999999
return random.Next(123400, 9999999).ToString();
}
}
}
各スクリプトコンポーネントでは、このC#コードを使用してクラスを開始し、ナンスを生成しています。
OAuthBase oAuth = new OAuthBase();
string nonce = oAuth.GenerateNonce();
私の周りの検索から、これはスレッドセーフではないことに関連していると思いますか?よくわかりません。
.NET3.5はSSIS2008でしか実行できないため、.NET4.0で導入された新しいもののいくつかは使用できません。
OAuthBaseクラスやC#スクリプトコンポーネントコードを変更する方法について何かアイデアはありますか?