【问题标题】:Auto proxy config failing when running on IIS LocalSystem identity在 IIS LocalSystem 标识上运行时自动代理配置失败
【发布时间】:2016-04-05 20:27:43
【问题描述】:

我正在使用 .pac 文件自动配置 WebProxy 的企业环境中创建 ASP.NET Web 应用程序。我可以通过IE正常访问外部网站,通过控制台运行我的应用程序也没有问题,但是通过IIS运行它时它不起作用。

根据我的研究,我发现代理设置是基于每个用户的,所以我假设控制台应用程序正在运行,因为它使用了我的域用户代理设置,而 IIS Web 应用程序失败了,因为它使用了未配置的 LocalSystem代理设置。

我有哪些选择可以让这个应用在 IIS 中运行?

1) 我无法在这些机器上编辑注册表,因此无法将用户代理设置复制到 LocalSystem 代理设置中。有没有其他方法可以复制不涉及编辑注册表的设置?

2) 我尝试启用模拟以试图让 IIS 使用域用户的代理设置,但这似乎不起作用。默认的 WebRequest.DefaultWebProxy 和我的 WebRequests 仍然出现错误的代理。无论如何,如果可以避免,我宁愿不必打开模拟。

还有其他想法吗?

【问题讨论】:

    标签: c# asp.net .net iis proxy


    【解决方案1】:

    如果使用自动代理检测不起作用,您可以在 web.config 中提供代理配置,例如:

    <system.net>
      <defaultProxy useDefaultCredentials="true">
        <proxy usesystemdefault="false" scriptLocation="http://<your_proxy_server>/<pac_file>.pac"/>
      </defaultProxy>
    </system.net>
    

    【讨论】:

    • 在我的例子中,pac文件被请求一些查询字符串,例如“www.abc.com/pac.asp?region&username” 所以我希望能够获取 IE 设置。否则我必须有一些方法来为每个部署配置它。
    • 需要考虑的一点:如果您可以在应用程序启动时自动确定区域和用户名应该是什么,您可以尝试将它们与 PAC 文件的其余 URL 结合起来,并以编程方式更新 Web。 config(以避免手动执行此操作)。
    • 此外,您应该能够将代理配置放入单独的文件(例如“proxy.config”)并使用“configSource”属性在 web.config 中引用它(即 ),如果这样更容易的话。
    • 我想我只是将其标记为答案,因为我没有得到其他任何东西。
    猜你喜欢
    • 2017-05-19
    • 2015-01-05
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多