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