Asp.net + графики не рендерятся после развертывания
Всем привет;
Меня попросили составить несколько графиков для веб-сайта, и все это идет гладко как в среде разработки, так и в предпроизводственной среде; однако при развертывании в производство, все что мы получаем это огромное ничто.
Вот содержимое web.config (идентично, за исключением строк подключения):
<configuration> <connectionStrings> <add name="GraphData" providerName="System.Data.SqlClient" connectionString="Data Source=prodServer;Initial Catalog=StatsData;User ID=xxxx;Password=xxx;" /> </connectionStrings> <appSettings> <!--<add key="ChartImageHandler" value="storage=file; timeout=20; dir=D:\TempChartStuff\; privateImages=false;" />--> <add key="ChartImageHandler" value="storage=memory; timeout=20; deleteAfterServicing=true; privateImages=false;" /> </appSettings> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="ChartImageHandler" /> <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer> <system.web> <httpHandlers> <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" /> </httpHandlers> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation> <httpRuntime targetFramework="4.5"/> <pages controlRenderingCompatibilityVersion="3.5" maintainScrollPositionOnPostBack="true"> <namespaces> <add namespace="System.Web.Optimization" /> </namespaces> <controls> <add tagPrefix="webopt" namespace="Microsoft.AspNet.Web.Optimization.WebForms" assembly="Microsoft.AspNet.Web.Optimization.WebForms" /> <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </controls> </pages> <authentication mode="None" /> </system.web> </configuration>
Что я упускаю?
Что я уже пробовал:
Удалил и повторно развернул все связанные файлы.
Убедился, что все источники данных действительно доступны (указал как на разработку, так и на предпроизводственную среду на сервере производственных данных, и данные правильно извлекаются = графики визуализируются в указанных средах)
Убедитесь, что на рабочем сервере установлена платформа .NET Framework 4.0.
Изменил тип хранения ChartImageHandler (как видно из приведенного выше кода) с файла на Memeroy, но имеет тот же результат, все рендерится в dev и pre-prod, но не в PROD.
Обратите внимание, что при проверке сетевого трафика целевая страница загружает все ресурсы(код 200-OK на каждом), включая графические изображения. Я могу только догадываться по размеру, что они пусты.
Вот заголовки ответов для Dev/Pre-Prod и Prod соответственно:
Dev/Pre-Prod
Cache-Control: private Content-Length: 15387 Content-Type: image/png Date: Tue, 12 Jun 2018 17:36:20 GMT Server: Microsoft-IIS/8.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET
Подгонять
Cache-Control: private Content-Length: 4866 Content-Type: image/png Date: Tue, 12 Jun 2018 17:38:21 GMT Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET
Каждое предложение приветствуется. Заранее спасибо!
an0ther1
Проверьте свои данные - измените свою БД в тестовой среде на производственную БД или захватите запрос диаграммы с помощью профилировщика и подтвердите, что вы получаете ожидаемые данные
с уважением
an0ther1
Попробуйте изменить свою БД в тестовой среде на рабочую БД или использовать SQL Profiler для захвата вашего запроса в рабочей среде - исключите, что проблема не связана с данными
с уважением
alexvw
Привет an0ther1,
Спасибо за Ваш вклад; на самом деле я уже делал этот шаг раньше, но так как вы подняли его, я решил проверить его снова со свежим умом.
Как бы мне сейчас ни было неловко, оказывается, что производственный файл web.config имел неправильный набор учетных данных. Вот так просто!
Если вы опубликуете свое предложение в качестве ответа, я буду более чем счастлив оценить его как правильное. Еще раз благодарю вас за помощь.
an0ther1
Спасибо Alexvw, рад быть полезным. Я добавлю его в качестве ответа
с уважением