小编Kri*_*ris的帖子

访问被拒绝尝试在C#中清除printqueue

我正在尝试在C#中创建一个清空打印队列中所有项目的方法.以下是我的代码:

LocalPrintServer localPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministratePrinter); 
PrintQueue printQueue = localPrintServer.GetPrintQueue(printerName);

if (printQueue.NumberOfJobs > 0)
{
    printQueue.Purge();
}
Run Code Online (Sandbox Code Playgroud)

当此代码运行时,在localPrintServer构造函数上,应用程序抛出此错误:"创建PrintServer对象时发生异常.Win32错误:访问被拒绝."

该构造函数有一些重载(包括不发送参数).尝试其中任何一个,我越过那一行,但是当我进入printQueue.Purge()调用时,我得到了与上面列出的相同的访问被拒绝消息.

寻找有关如何/我可以做些什么的建议来解决这个问题.我可以从我的电脑手动删除打印作业.我不确定应用程序是否以相同的访问权限运行,也不确定如何检查.

c# access-denied printqueue

7
推荐指数
2
解决办法
7919
查看次数

成功运行signTool后发布者未知

我正在尝试创建测试证书并签署我创建的.MSI文件.在购买真正的安全证书之前,我需要让测试版与签名的.MSI一起使用.

我已执行以下步骤来签署我的.MSI文件.一切都成功完成,并显示一条消息,表明在最后一步之后成功签署了1个文件.

makecert.exe -sv c:\Test\mykey.pvk -n "CN=WTS" c:\Test\myCert.cer

cert2spc.exe c:\Test\mycert.cer c:\Test\mycert.spc

pvk2pfx -pvk c:\Test\mykey.pvk -pi password -spc c:\Test\mycert.spc -pfx c:\Test\mycert.pfx -po password

signTool sign /f c:\Test\mycert.pfx /p password /v c:\Test\test.msi
Run Code Online (Sandbox Code Playgroud)

执行这些步骤后,我运行.MSI文件(为.MSI修改的日期确实更改为与运行signTool步骤的时间相匹配).显示此.MSI来自未知发布者的警告消息仍显示为"发布者:未知".

我错过了一步还是什么?一切似乎都正常,我从来没有看到任何错误,但我的文件似乎没有签名.

windows installer install windows-installer signtool

7
推荐指数
1
解决办法
1万
查看次数

将Ampersand添加到XmlElement

我正在创建一个更大的XML文档中使用的几个XmlElements.

XmlElement thisElement = xmlSearchParameters.CreateElement("value");
thisElement.InnerXml = this.searchParameters[key];
Run Code Online (Sandbox Code Playgroud)

这适用于大多数情况,但如果searchParameters [key]的值恰好包含&符号,则会出现以下两个错误之一:

发生了意外的文件结束.第1行,第1位. - 如果值仅为&

解析EntityName时发生错误.第1行,第7行. - 如果值包含&与其他文本混合.

在XmlElement中包含&和任何其他特殊符号的首选方法是什么?我怀疑必须有一个更好的方法,而不仅仅是替换和其他东西(某种XmlFormat方法???).

c# xml

2
推荐指数
1
解决办法
2283
查看次数