WebClient,UseDefaultCredentials,IIS,WindowsAuthentication和TaskScheduler

问题描述

我编写了一个.NET控制台应用程序,该程序使用System.Net.WebClientUseDefaultCredentials = true从Intranet Web应用程序中获取一些值。该Web应用程序使用Windows身份验证,并允许所有用户登录到网络并拒绝匿名用户

<authentication mode="Windows"/>

<authorization>      
  <allow users="*" />    
  <deny users= "?"/>
</authorization>

当我通过双击程序的EXE文件在PC上运行该控制台应用程序时,它可以正常运行。它会执行应做的事情。

但是,当使用TaskScheduler在同一台PC上运行同一程序作为计划任务时,它无法与Intranet Web应用建立通信。

控制台应用程序设置为在特定用户帐户(我自己的帐户)下运行,该帐户与双击该程序的exe时使用的帐户相同,并且可以设置是否运行,无论用户是否登录。我也尝试过启用和禁用“以最高权限运行”。

在配置任务时,TaskScheduler要求提供我提供的运行帐户密码。没有选中防止密码存储的选项。

在TaskScheduler上下文中,我的WebClient子类设置为使用UseDefaultCredentials = true时是否存在问题?

P.S。我还应该补充一点,该程序的Main()例程正在测试命令行参数,并假设args [1]和args [2]如果存在,则包含其所需的特定值,如果不存在,则使用认值。 TaskScheduler是否向其启动的可执行文件提供任何命令行参数?我假设它不会这样做。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)