$ultaNn Ответов: 0

Не удалось загрузить соединение crystalreport13 из IIS


я попытался загрузить crystal report на windows server 2012 R2 из IIS и получил сообщение об ошибке
Не удалось открыть соединение. MA723DT 2608_14160_{B2777DB7-D4BD-4E31-8748-7E70DE55C132}.rpt
но он работает на той же машине из visual studio при отладке приложения

Что я уже пробовал:

private void GetReport(string EmpID, string StartDate, string EndDate, string Conn, string Cmpid)
      {
          try {
              TableLogOnInfos TableLogOnInfos = new TableLogOnInfos();
              TableLogOnInfo TableLogOnInfo = new TableLogOnInfo();
              ConnectionInfo ConnectionInfo = new ConnectionInfo();
              SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
              Tables Tables;
              ReportDocument report = new ReportDocument();
              string FileName = "~/MA723BA.rpt";
              report.Load(Server.MapPath(FileName));
              if (Conn != "")
              {
                  string ConnString = ConfigurationManager.ConnectionStrings[Conn].ConnectionString;
                  if (ConnString.ToLower().StartsWith("metadata="))
                  {
                      System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(ConnString);
                      ConnString = efBuilder.ProviderConnectionString;
                      builder.ConnectionString = ConnString;

                      ConnectionInfo.ServerName = builder.DataSource;
                      ConnectionInfo.DatabaseName = builder.InitialCatalog;
                      ConnectionInfo.UserID = builder.UserID;
                      ConnectionInfo.Password = builder.Password;
                      Tables = report.Database.Tables;

                      foreach (CrystalDecisions.CrystalReports.Engine.Table table in Tables)
                      {
                          TableLogOnInfo = table.LogOnInfo;
                          TableLogOnInfo.ConnectionInfo = ConnectionInfo;
                          table.ApplyLogOnInfo(TableLogOnInfo);
                      }

                  }
              }
              ParameterRangeValue myParameterRangeValue = new ParameterRangeValue();

              myParameterRangeValue.StartValue = StartDate;
              myParameterRangeValue.EndValue = EndDate;
              report.SetParameterValue(0, EmpID);

              report.SetParameterValue(1, myParameterRangeValue);
              CrystalReportViewer1.ReportSource = report;
              CrystalReportViewer1.DataBind();
          }
          catch(Exception er)
          {
              throw new Exception(er.ToString());
          }
          }

Richard Deeming

catch(Exception er)
{
    throw new Exception(er.ToString());
}

Серьезно, не делай этого.

Вы просто отбросили любой шанс для вызывающего кода поймать исключение, которое он знает, как обрабатывать. И вы уничтожили любую информацию в исключении, которая не включена в его строковое представление.

Если вам действительно нужно поймать и перестроить исключение, просто используйте:
catch (Exception ex)
{
    throw;
}

Но поскольку вы ничего не делаете с этим исключением, вы можете просто удалить его. try..catch блокируйте и позволяйте исключениям распространяться нормально.

$ultaNn

попробуйте поймать удалено

0 Ответов