Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在iis8 c web api应用程序中找到所有网络打印机?_C#_Iis 8_Network Printers - Fatal编程技术网

C# 如何在iis8 c web api应用程序中找到所有网络打印机?

C# 如何在iis8 c web api应用程序中找到所有网络打印机?,c#,iis-8,network-printers,C#,Iis 8,Network Printers,托管在IIS 8上的C应用程序找不到已安装的网络打印机。当我在笔记本电脑上运行应用程序时,它们会返回我安装的所有网络打印机 我试过了 将应用程序池标识更改为具有打印权限的用户。 使用指向网络打印机的指针创建本地打印机。 我的代码 列表可用Inter=新列表; var printerQuery=new ManagementObjectSearcherSELECT*来自Win32_打印机,其中网络='True'; printerQuery.Get中的foreach var打印机 { var Name

托管在IIS 8上的C应用程序找不到已安装的网络打印机。当我在笔记本电脑上运行应用程序时,它们会返回我安装的所有网络打印机

我试过了

将应用程序池标识更改为具有打印权限的用户。 使用指向网络打印机的指针创建本地打印机。 我的代码

列表可用Inter=新列表; var printerQuery=new ManagementObjectSearcherSELECT*来自Win32_打印机,其中网络='True'; printerQuery.Get中的foreach var打印机 { var Name=printer.GetPropertyValueShareName.ToString; var IP=printer.GetPropertyValuePortName.ToString; 可用打印机。添加新的网络打印机 { IP=IP, Name=Name, } ; } 返回有效时间间隔;
我在IIS中尝试了您的代码,可以检测到所有已安装的网络打印机。那么,您是否尝试在IIS端运行相同的代码?你在同一台服务器上得到同样的结果了吗?如果没有,建议捕获第一次机会异常转储以检查那里发生了什么。是的,在iis之外,我获得所有打印机。问题是我没有例外。查询结果为空:/i当我从iis请求本地打印机时,只得到一个名为Microsoft XPS Document Writer的打印机。您是否尝试将应用程序池标识切换到LocalSystem?在IIS中查询win32_printer类时,似乎存在一些隔离。此外,您是否尝试过为这个web应用程序做一个自宿主?