2010-12-01 5 views
0

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을 (참조하려고으로 재부팅, 그러나 천국 ' 내가해야 할 일을 알아낼 수있었습니다. 이 일을해야하기 때문에 사전에

감사합니다,

랜디

+0

새 서버에 종속성이 설치되지 않았습니까? .NET 런타임 3.5 및 4.0이 설치되어 있는지 확인하십시오. – Tahbaza

+0

예, 둘 다 설치되어 있습니다. 의존성 설치가 무슨 뜻인지 모르시겠습니까? VS2008이 다른 서버에 설치되어 있지만이 서버에 설치하고 싶지는 않습니다. – Iceman

답변

2

나는 마이크로 소프트에 문의 끝났다. 그들의 환경에서 작업 한 샘플 응용 프로그램을 제공했을 때. 필자는보고 서비스를 위해 설치하지 않은 핫픽스를 설치 한 것으로 나타났습니다. 핫픽스를 설치 한 후에 모든 것이 작동했습니다.

빌드 10.50.1720 - SSRS 2008 R2 RTM (http://support.microsoft.com/kb/2072493)에 대해 CU2가 적용되었습니다.