現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012 または SQL Server 2014 マスターデータサービス (MDS) を使用している。
-
エンティティの特殊文字 ("+" 記号など) の値を含む属性があります。
-
このエンティティに対してビジネスルールを定義し、検証に失敗したときにメール通知を送信するように構成します。
このシナリオでは、通知メール内のリンクが壊れていて、正しくありません。 たとえば、"+" 記号は "% 2b" に置き換えられます。これは正しくありません。 そのため、MDS で予期されるレコードにリンクすることはできません。
原因
この問題が発生するのは、Silverlight が QueryString コレクションからコード値を取得したときに、UrlDecode を呼び出しているためです。 ただし、QueryString コレクションの値は MDS によって既にデコードされています。 そのため、不要な UrlDecode が実行されます。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 SP1 の累積更新プログラム1 /en-us/help/3067839
SQL Server 2014 の累積更新プログラム8 /en-us/help/3067836
SQL Server 2012 SP2 の累積更新プログラム5 /en-us/help/3037255
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。