0

我创建了一个 WCF 服务,在其中我使用 C# 编码通过 HttpWebRequest 和 HttpWebResponse 读取 msn 是否提供和新的提要。当我在我的本地 PC 上执行该服务时,它工作正常并正确获取源,不仅在我的系统中,在我们所有的网络系统中也是如此。我使用CredentialCache.DefaultNetworkCredentials分配作为 HttpWebRequest 代理凭据的默认网络凭据,并为 HttpWebRequestHttpWebRequest.DefaultWebProxy的代理提供。在我的电脑上一切正常。当我在我们的服务器 pc 中将服务安装到 Windows 服务并启动服务时,每次它都会抛出一个意外错误,如下所示

System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at System.Net.HttpWebRequest.GetResponse()

我无法在我的服务器应用程序中修复此错误。通过将我在服务中请求的 uri 复制到浏览器,它可以获取服务器 pc 中的提要。但是为什么它在通过 Windows 服务(services.msc)运行时抛出异常?希望任何人都可以帮助我解决这个问题。

编辑:

实际上,在我尝试通过为代理凭据提供代理用户名和密码以及通过配置条目指定代理地址之前,当时它工作正常。但我们的计划是消除每次都提供代理 IP 地址、用户名、密码的负担。因此,我们计划通过保存在系统中的默认网络凭据提供它,以通过上述给定步骤绕过代理。

4

1 回答 1

0

您是否在公司中设置了需要身份验证的代理服务器?

尝试使用您的身份而不是内置身份(网络服务、本地系统)运行服务,看看是否有帮助。

编辑:

我想这可能取决于代理的配置方式,但要使用默认代理设置,您可能需要该服务在正确设置了这些属性的域帐户下运行。当然,最好使用专用服务帐户而不是您自己的服务帐户。

此外,您可能想看看如何在配置文件中配置代理而不是对其进行硬编码。

于 2012-01-17T07:32:37.490 回答