Domanda

sto eseguendo un pacchetto DTS 2000 SQL Server utilizzando C # seguendo il codice da questo articolo http: // support.microsoft.com/kb/319985 . una volta che viene eseguito il pacchetto che sto loop attraverso ogni passo per scoprire se ogni passo è fallito e ottenere informazioni di errore se ha fallito. Ho anche utilizzare queste informazioni per scoprire se il pacchetto è riuscita oppure no (pacchetto non riuscita se qualcuno passo è fallito).     il problema che sto affrontando è che a volte il pacchetto non riesce (salti al blocco catch), con un messaggio di errore generico che "l'esecuzione è stata annullata dall'utente" e non dà più informazioni di quello. Se si esegue il pacchetto utilizzando manualmente il DTSRUNUI poi ho scoperto che il pacchetto si aspettava un file di testo come input e il file non esiste nella posizione specificata. in tal caso il messaggio di errore dal codice .NET dovrebbe dire chiaramente. ho bisogno di apportare modifiche al codice di questo articolo, per ottenere ulteriori dettagli sugli errori. Ho aggiunto il seguente supplementare per ottenere le informazioni di errore, ma non ha aiutato molto. ci sono due proprietà chiamate "FailOnError" a pacchetto e "ExecuteInMainThread" a passo oggetti. Ho provato a installare loro pure, ma che anche non ha aiutato. non è sicuro se sono tenuti.

    bool success = true;
if (package != null)
{
    foreach (Step step in package.Steps)
    {
        if (step.ExecutionStatus == DTSStepExecStatus.DTSStepExecStat_Completed 
            && step.ExecutionResult == DTSStepExecResult.DTSStepExecResult_Failure)
        {
            int errorCode, helpContext;
            string errorSource, errorDescription, helpFile, iDofInterfaceWithError;

            step.GetExecutionErrorInfo(out errorCode, out errorSource, out errorDescription, out helpFile,
                                       out helpContext, out iDofInterfaceWithError);
            LogToTextFile(
                string.Format(
                    "step name: {0} error Code : {1}, error Source : {2}, error Description: {3}", step.Name,
                    errorCode, errorSource, errorDescription));
            success = false;
        }
    }
}
È stato utile?

Soluzione

Sto usando dtsrun.exe per eseguire il pacchetto DTS (con il lancio del processo da C #) e riorientare la sua uscita della console per il file e che l'uscita è normalmente sufficiente in caso di eventuali errori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top