Я успешно запускаю консольное приложение в веб-роли, которая запускается в нужное время и успешно отправит тестовое электронное письмо:
net start "task scheduler"
net user scheduler SecretP@ssw0rd /add
net localgroup Administrators scheduler /add
schtasks /create /SC WEEKLY /D THU /ST 17:30 /TN WariCheckNewFeed /TR %~dp0ConsoleAppToCallWebPage.exe /F /RU scheduler /RP SecretP@ssw0rd
Проблема: когда оно достигает:
ReportParameter startAndEndDateStringParam = new ReportParameter("StartAndEndDateString", startAndEndDateString);
LocalReport reportSummaryPDF = new LocalReport();
reportSummaryPDF.ReportPath = "MerchantCampaignSummary.rdlc";
reportSummaryPDF.SetParameters(new ReportParameter[] { campaignName, merchantNameParam, totalRedeemed, startAndEndDateStringParam });
reportSummaryPDF.DataSources.Clear();
reportSummaryPDF.DataSources.Add(datasource1);
reportSummaryPDF.DataSources.Add(datasource2);
Я получаю:
Application: ConsoleAppToCallWebPage.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.Reporting.WinForms.LocalProcessingException
Stack:
at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.LocalReport.SetParameters(System.Collections.Generic.IEnumerable`1<Microsoft.Reporting.WinForms.ReportParameter>)
at ConsoleAppToCallWebPage.Program.SendMerchantSummaryAndBreakdownReports(System.String, System.Guid, System.Guid)
at ConsoleAppToCallWebPage.Program.Main(System.String[])
DLL - это версия 10 ReportViewer с моей 64-битной машины Win7.
Если я переадресовываю RDP на веб-экземпляр Azure, я могу успешно запустить консольное приложение по адресу e: \ Approot \ startuptasks \ consoleapptocallwebpage.exe
Похоже на разрешения!
<WebRole name="Web" vmsize="Small" enableNativeCodeExecution="true">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpIn" endpointName="HttpIn" />
</Bindings>
</Site>
<Site name="WebMVCAdmin" physicalDirectory="c:\publishWebMVCAdmin">
<Bindings>
<Binding name="HttpIn" endpointName="HttpIn" hostHeader="pvadmin8.mateerit.co.nz" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="DataConnectionString" />
<Setting name="SQLAzureRetryCountMaximum" />
<Setting name="SQLAzureRetryDelaymSec" />
</ConfigurationSettings>
<Endpoints>
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
<Startup>
<Task commandLine="StartupTasks\addScheduledTaskRunner.cmd" executionContext="elevated" taskType="simple" />
<Task commandLine="StartupTasks\disableTimeout.cmd" executionContext="elevated" />
</Startup>
</WebRole>