RTFをプレーンテキストに変換するカスタムアセンブリを作成しました。これは、SSRS 2008、Windows 2003 Server、rssrvpolicy.config変更、Excecution Account、およびIIS 6.0の設定でうまく動作します。Reporting Servicesカスタムアセンブリ
SSRS 2008R2、Win 2008、およびIIS 7を実行している新しいサーバーを作成しました。この新しい環境では動作せず、エラーは発生しませんが、代わりにSSRSサービスが再起動します。これは、System.Windows.Forms.RichTextBox()を参照する場合にのみ発生します。以下のコードを参照してください。
誰でも私に、この作業をさせるために何が必要か、テストする必要があるかもしれないという考えを伝えられますか?ログファイルとイベントビューアを確認しましたが、エラーは表示されません。 RichTextControlを呼び出さず、レポートにテキストを出力するだけで、アセンブリを呼び出すことができます。 System.Windows.Forms.RichTextBoxを参照しようとすると失敗します。私は運がないGACにもインストールしましたが、(?)する必要はなく、古いバージョンでは必要ありませんでした。
また、try/catchブロックをコードの周りに配置して、エラーが発生するかどうかを確認しました。私がちょうどエラーを投げると、私はメッセージを受け取ります。 RichTextBoxコントロールを呼び出すと、SSRSサービスが再起動されます。
マイコード:
using System;
using System.Windows.Forms;
using System.Diagnostics;
namespace ConversionUtility
{
public class ConversionUtility
{
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Unrestricted = true)]
public static string ConvertRTFToText(string richText)
{
string sText = "";
try
{
// if I comment out these 3 lines, this will work
RichTextBox richTextBox = new System.Windows.Forms.RichTextBox();
richTextBox.Rtf = richText;
sText = richTextBox.Text;
//throw new Exception("Log this error");
}
catch (Exception e)
{
sText = "Error Caught: " + e.Message;
}
return sText;
}
}
}
私は、これらの権限が定義されています。私は下のCodeGroupを追加し、私がRichTextBoxを参照していなければ動作します。サービスはすぐに、私は)私はそれがのSystem.Windows.Formsへのアクセス権の問題を持っています考えている
<CodeGroup
class="UnionCodeGroup"
version="1"
Name="SecurityExtensionCodeGroup"
Description="Code group Conversion Utility"
PermissionSetName="FullTrust">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin \ConversionUtility.dll"
/>
をSystem.Forms.Windows.RichTextBoxを(参照しようとしてリブートしますが、避難所」私は何をする必要があるかを理解することができました。これが働いているはずなので、事前に
おかげで、
ランディ
新しいサーバーに依存関係がインストールされていない可能性がありますか? .NETランタイム3.5および4.0がインストールされていることを確認してください。 – Tahbaza
ええ、どちらもインストールされています。依存関係のインストールが何を意味するかわからない私はVS2008が他のサーバーにインストールされていることを知っていますが、このサーバーにはインストールしたくありません。 – Iceman