Спрашивающий
MS CRM 4.0 и ReportServer

Вопрос
-
Добрый день. Имеется установленный (без ошибок) CRM 4.0 на одном сервере, SQL 2005 std с Reporting Server и Microsoft Dynamics CRM 4.0 Connector for SQL Reporting Services на другом. При попытке открыть сайт http://SQL/reportserver все открывается. Отчёты видны.
При генерации отчёта с самого CRM выдаётся следующее: "- По соображениям безопасности DTD запрещен в этом документе XML. Чтобы разрешить обработку DTD, присвойте свойств у ProhibitDtd для XmlReaderSettings значение false и передайте параметры методу XmlReader.Create."
- Удалил всё содержимое репорт сервера вместе с базами. Создал базы из Report Services Configuration Manager. Залил без ошибок туда отчёты с помощью PublishReports.exe. Из браузера снова всё доступно, а СRM снова ругается....
Изучил http://social.technet.microsoft.com/forums/ru-RU/sqlru/thread/6346b67f-7353-4540-8d27-9237b01fc361/ ... не получилось...
- Как я понимаю, веб узел ReportServer работает под .NET FrameWork 2.0 (попытка переключения в 1.1 вызывает ошибку) и, соответственно, для него применимо http://www.compress.ru/article.aspx?id=10803&iid=436
- Вторым новшеством версии 2.0 стала возможность запрещения обработки DTD при загрузке XML-документа. Когда создавалась спецификация XML 1.0, вопросы обеспечения безопасности не являлись первоочередными, в результате чего DTD-документ может служить источником атак Denial of Service (DoS-атак), если, конечно, воспользоваться соответствующими функциями DTD. В версии 2.0 для защиты от DoS-атак предусмотрено свойство ProhibitDtd класса XmlReaderSettings, с помощью которого можно запретить обработку DTD: если это свойство установлено, то класс XmlReader будет генерировать исключение при обнаружении любого DTD-содержимого в XML-документе.
на сервере в crm выдается в логах вот что:
Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 09.03.2009 15:57:51
Event time (UTC): 09.03.2009 12:57:51
Event ID: 1470fa62095545c8b701e4c7973b617b
Event sequence: 640
Event occurrence: 5
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-128810694877308994
Trust level: Full
Application Virtual Path: /
Application Path: C:\Program Files\Microsoft Dynamics CRM\CRMWeb\
Machine name: CRM
Process information:
Process ID: 5820
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: WebException
Exception message: Сбой запроса с состоянием HTTP 401: Unauthorized.
Request information:
Request URL: http://crm:5555/Reserved.ReportViewerWebControl.axd?ReportSession=f402xt55cal2mw45pplf1sqw&ControlID=ef29bcec-f970-4628-af31-1e62d793dc08&Culture=1049&UICulture=1049&ReportStack=1&OpType=SessionKeepAlive&Interval=539000
Request path: /Reserved.ReportViewerWebControl.axd
User host address: 192.168.0.x
User: DOMAIN\LOGIN (изменено по соображениям безопасности)
Is authenticated: True
Authentication Type: Negotiate
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 10
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: True
Stack trace: в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
в Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.GetExecutionInfo()
в Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetExecutionInfo()
в Microsoft.Reporting.WebForms.ServerReport.TouchSession()
в Microsoft.Reporting.WebForms.SessionKeepAliveOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response)
в Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context)
в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Custom event details:- Помогите пофиксить...
- читал http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/75f56c47-a3c3-47d3-a345-0ea95f777892/ - долго думал.....
MCSE: Security9 марта 2009 г. 13:01
Все ответы
-
Мне кажется попытка исправить ошибку только усугубила ситуацию. С отчетами в CRM 4.0 есть одна небольшая тонкость - они хранятся в базе [org_name]_MSCRM и публикуются на report-сервере по требованию (это не касается стандартных отчетов - они публикуются при установку сервера или импорте/создании организации. Это хорошо видно при переносе баз организаций с одного sql сервера на другой: с отчетами вообще ничего делать не надо. В том числе переносить их с помощью PublishReports.exe.
Вообще в этом случае лучше посмотреть логи sql-сервера, на котором лежат базы отчетов. Эти логи наиболее информативны.
MCT13 марта 2009 г. 13:52Модератор