Windows services Windows服务中的HTTP请求问题

Windows services Windows服务中的HTTP请求问题,windows-services,service,Windows Services,Service,我们已经编写了一个Windows服务,它需要发送一个HTTP请求,以便将一些xml数据发布到另一台服务器。当我们通过控制台应用程序测试代码时,它工作正常,但当我们通过将其作为服务运行来测试代码时,它会在以下代码行中出错: var httpWebRequest = (HttpWebRequest)WebRequest.Create(Uri); 错误消息是: "Configuration system failed to initialize" 我们认为该错误是由于运行Windows服务的用户帐

我们已经编写了一个Windows服务,它需要发送一个HTTP请求,以便将一些xml数据发布到另一台服务器。当我们通过控制台应用程序测试代码时,它工作正常,但当我们通过将其作为服务运行来测试代码时,它会在以下代码行中出错:

var httpWebRequest = (HttpWebRequest)WebRequest.Create(Uri);
错误消息是:

"Configuration system failed to initialize"
我们认为该错误是由于运行Windows服务的用户帐户没有发出HTTP请求的权限造成的,我们已尝试在本地管理员帐户下运行该帐户,但无效。这不是提供用户名和密码的问题,因为当我们将代码作为控制台应用程序运行时,上面的代码行执行得很好


非常感谢您的任何建议!非常感谢。

这不太可能是安全问题

从这样的帖子来看:

它似乎来自配置文件问题。我猜Uri是通过查看配置文件来初始化的属性


这里的问题可能来自不一致的配置文件,或者来自服务从某个奇怪的地方加载配置文件,因为它是作为服务运行的。您可能希望查看sysinternals中的procmon,以查看启动时加载的服务。

是否有用户范围的设置?没有为windows服务加载任何用户配置文件,也就是说,除非您自己加载一个,否则将丢失用户范围设置。

谢谢Yann,但Uri是一个硬编码字符串,不会从任何配置文件读取,因此,此处没有配置文件问题。能否提供异常的完整堆栈跟踪?System.Configuration.ClientConfigurationSystem.EnsureInString configKey位于System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystemString sectionName位于System.Configuration.ClientConfigurationSystem.System.Configuration.InternalConfigSystem.GetSectionString sectionName位于System.Configuration.ConfigurationManager.GetSectionString sectionName位于System.Configuration.PrivilegedConfiguration Manager.GetSectionString sectionName位于System.Diagnostics.DiagnosticsConfiguration.GetConfigSectionat System.Diagnostics.DiagnosticsConfiguration.get_Sources at System.Diagnostics.TraceSource.Initialize at System.Net.Logging.InitializeLogging at System.Net.Logging.get_On at System.Net.WebRequest.CreateUrirequestUri,位于System.Net.WebRequest.CreateString requestUriStringat Logic.API.Parsers.Communicator.GetResponseString xml中的布尔useUriBase,位于C:\EPiServer\Sites\CompanyX\CompanyX.BL\Logic\API\Parsers\Communicator.cs:Logic.Factory.GetVoyagesByShipString shipCode的第168行,C:\EPiServer\Sites\CompanyX\CompanyX.BL\Logic\VoyageFactory.cs中的字符串fileloc:C:\EPiServer\Sites\CompanyX\CompanyX.BL\bookingenecacheservice\Cacher.cs:line 126中BookingEngineCacheService.Cacher.Cache的第101行解决了该问题。节点中的machine.config文件有问题。某些设置配置错误。从另一台电脑上获取了另一个machine.config文件,现在工作正常。感谢那些试图帮助的人。