我可以通过COM库库FaxComLib发送传真(添加引用 - > COM选项卡 - > faxcom 1.0类型库)并且传真成功。FaxComLib FaxJob队列状态总是“待定”
我的问题是虽然我可以发送传真,但我似乎无法从传真队列中获得准确的状态。 FaxJob对象的QueueStatus属性始终返回“Pending”。
的环境:Windows 2003 R2企业瓦特/ SP2 - 也尝试在Windows 2008 R2具有相同的结果
这里是我的原型代码:
public void GetFaxStatus(int queueNum)
{
FaxServer faxServer = new FaxServer();
faxServer.Connect("myfaxservername");
bool isInQueue = false;
FaxJobs faxJobs = (FaxJobs)faxServer.GetJobs();
for (int i = 1; i <= faxJobs.Count; i++)
{
FaxJob j = (FaxJob)faxJobs.Item[i];
MessageBox.Show(faxJobs.Item[i].GetType().ToString() + "\r\n" + CreateStatus(j));
if (j.JobId == queueNum)
{
MessageBox.Show("Found Job:\r\n" + CreateStatus(j));
isInQueue = true;
}
}
if (isInQueue == false)
{
MessageBox.Show("Fax is no longer in queue.(...or does not exist)");
}
faxServer.Disconnect();
}
static string CreateStatus(FaxJob job)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(string.Format("Billing Code: {0}", job.BillingCode));
sb.AppendLine(string.Format("Device Status: {0}\r\n", job.DeviceStatus));
sb.AppendLine(string.Format("Queue Status: {0}", job.QueueStatus));
sb.AppendLine(string.Format("Display Name: {0}", job.DisplayName));
sb.AppendLine(string.Format("Fax Number: {0}", job.FaxNumber));
sb.AppendLine(string.Format("Job Id: {0}", job.JobId));
sb.AppendLine(string.Format("Tsid: {0}", job.Tsid));
sb.AppendLine(string.Format("Type: {0}", job.Type));
sb.AppendLine(string.Format("Page Count: {0}", job.PageCount));
return sb.ToString();
}
当我运行的作业失败(重试超出上限),我得到这个:
这是我曾经获得的任何传真作业的唯一状态;在任何状态下。难道我做错了什么?我配置了传真服务器吗?你能帮我解释一下我的问题吗?
谢谢。 -Jason
这无疑是您的传真服务提供商的问题。联系制造商寻求支持。 –
我们使用的是本地传真调制解调器和内置的Windows传真服务。真的没有很多可配置的设置,我不知道我应该转向哪个制造商。这里没有第三方参与。 –
你的'for loop'显示如何枚举FaxJobs救了我! MSFT文档sux btw。 – Flea