[英]Reports job scheulded on server works different from my local machine
這是該問題的簡要說明:
我有一個用C#
用HTML/CSS
和TSQL
語言編寫的腳本,該腳本應該將生成的報告分發給我們的每個團隊成員,當我在本地計算機上進行測試時,每個人都可以收到電子郵件,但是如果我計划了作為服務器上的一項工作,我們中只有少數人可以得到(我們有一個用於記錄已發送電子郵件的表,並且記錄步驟也是腳本中的TSQL存儲過程),我已經檢查了該表,沒有丟失收件人的此類數據記錄,僅適用於收到電子郵件的人員,這意味着存儲過程不適用於未收到電子郵件的成員,以下是用於登錄到表並發送電子郵件的代碼
public void Main()
{
...code above
try
{
...code above
if (SendMail(sSubject, sBody))
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception e)
{
//error handling
}
}
public bool SendMail(string sSubject, string sMessage)
{
try
{
string sEmailSendTo = Dts.Variable["ProjRespEmail"].Value.ToString();
string sEmailSendFrom = Dts.Variables["SqlEmail"].Value.ToString();
if (Dts.Variables["StrClientName"].Value.ToString() != "")
{
using (SqlConnection sqlCon = new SqlConnection("connection name"))
{
sqlCon.Open();
using (SqlCommand sqlCmd = sqlCon.CreateCommand())
{
sqlCmd.CommandText = "name";
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.Add(new SqlParameter("SendingMachine", Environment.MachineName));
sqlCmd.Parameters.Add(new SqlParameter("Recipients", sEmailSendTo));
sqlCmd.Parameters.Add(new SqlParameter("Subject", sSubject));
sqlCmd.Parameters.Add(new SqlParameter("Body", sMessage));
sqlCmd.ExecuteNonQuery();
}
}
}
Dts.Variables["ProjRespEmail"].Value = "";
Dts.Variables["StrProjResponsible"].Value = "";//SqlEmail
Dts.Variables["SqlEmail"].Value = "";
Dts.Variables["StrClientName"].Value = "";
return true;
}
catch (Exception ex)
{
//error handling
return false;
}
}
任何建議將不勝感激。
您的代碼中的部分問題是,最后總是將TaskResult設置為Success。 刪除下面指出的行:
try
{
...code above
if (SendMail(sSubject, sBody))
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
//Remove this, because it overwrites the actions from above
//Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception e)
{
//error handling
}
這至少將使任務失敗,因此您可以捕獲任何錯誤。 根據您的描述,聽起來proc可能與本地計算機和服務器版本不同,因為Recipients變量的大小可能不同,並且會截斷列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.