Пользовательская сборка служб отчетов - PullRequest
0 голосов
/ 02 декабря 2010

Я создал пользовательскую сборку для преобразования RTF в обычный текст, и она хорошо работает со следующей конфигурацией: SSRS 2008, Win 2003 Server, изменения rssrvpolicy.config, учетная запись исключения и IIS 6.0.

Мы создали новый сервер с 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.Forms.Windows.RichTextBox ()

<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.Windows.Forms, но не смог понять, что мне нужно делать.

Заранее спасибо,

Рэнди

1 Ответ

2 голосов
/ 14 декабря 2010

Я связался с Microsoft, потому что это должно было сработать.Когда я дал им пример приложения, я работал в их среде.Оказалось, что у них установлено исправление для служб Reporting Services, чего у меня нет.После того, как я установил исправление, все заработало.

build 10.50.1720 - применил CU2 для SSRS 2008 R2 RTM (http://support.microsoft.com/kb/2072493).

...