Quartz.NET: ERİŞİM PHP cmd line sonuçlar çalıştıran php_mssql.dll üzerinde ENGELLENDİ?

0 Cevap php

Ben, bir XML dosyası zamanlanmış iş bilgileri okur çalıştırmak için cmd hattı için ayrıştırır ve çözümlü parametreleri ile zamanlanmış bir işi oluşturur Windows Service uygulama Quartz.NET planlaması var.

EventLog komut çıkış gösteren, başarıyla şu anda Zamanlayıcı komut satırı yürütme sınamak için PHP komut satırı dosyaları kullanıyorum ve gayet güzel işler tekmeleme gibi görünüyor, ve hatta komple ...

Sorun, hata ile bir uyarı açılır görüntüler çalışan her zaman:

"PHP Startup: dinamik kütüphane 'C: \ php5 \ php_mssql.dll' yüklenemiyor - Erişim engellendi"

Ben bu uyarıya Tamam cevap verirseniz, komut ince çalıştırmak gibi görünüyor, ama bu ekranda kalırsa, başka planlanan PHP betikleri tamamlanması için çalışır, fakat çıkış (I varsayıyorum önce buna çalışan duraklatılmış işin tarafından düzenlenen boştur. ) ...

Bunu nasıl erişim programlı mesaj engellendi önleyebilir?

Aşağıdaki gibi ayrıştırılmış CMD hattı çalışır Quartz.NET İş Yürütme script:

public void Execute(JobExecutionContext context)
    {
        EventLog eventLog = new EventLog();
        eventLog.Source = "SchedulerServiceSource";
        eventLog.Log = "SchedulerService";


        JobDataMap dataMap = context.MergedJobDataMap;  // contanis information for this job parsed from the XML file.
        String jobName = dataMap.GetString("name");
        String execute = dataMap.GetString("execute");
        String args = dataMap.GetString("arguments");

        //String LogMsg = "JobRunner Executing=============\n"; // Written to event log after job execution
        //LogMsg += "JobName: " + jobName + "\n";
        //LogMsg += "Executing: " + execute + "\n";
        // eventLog.WriteEntry(LogMsg); // Write the job's details to the log

        try
        {
            Process p = new Process(); // Start the child process.
            // Redirect the output stream of the child process.
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.FileName = execute;
            p.StartInfo.Arguments = args;
            p.Start();
            // Do not wait for the child process to exit before
            // reading to the end of its redirected stream.
            // p.WaitForExit();
            // Read the output stream first and then wait.
            String output = p.StandardOutput.ReadToEnd();
            p.WaitForExit();
            eventLog.WriteEntry(jobName + "\nexecuted:\n---------------\n" + execute + " " + args + "\n---------------\nRESULTS:\n===============\n" + output + "\n===============");
        }
        catch (Exception ex)
        {
            eventLog.WriteEntry(jobName + "\nattempted to execute:\n---------------\n" + execute + " " + args + "\n---------------\n...FAILED:\n===============\n" + ex.Message + "\n===============", EventLogEntryType.Error);
        }
    }

Şimdiden teşekkürler herkese!

EDIT: Bu ... Ben koşuyorum php komut Veritabanı ile etkileşim DEĞIL basit bir MERHABA DÜNYA, ama ben DB işlevselliği kullanılır birini çalıştırmak MUYDUNUZ eğer, bunun nedeni Erişim Engellendi msg için başarısız olacak bir his var da kabul edilemez olduğunu ve bu proje için tam kapasite PHP kullanmak gerekir!

EDIT2: Ben hizmeti Windows LocalService hesabını kullanarak yüklü.

0 Cevap