如何访问web.config中的部分从其他应用程序中调用Web服务?

问题描述 投票:0回答:1

我正在使用Visual Studio,框架4.7.1 Web服务。它的一个Web方法需要调用其它Web服务(由另一家公司提供)。它把它接收到的参数(与我们的主要应用程序的业务逻辑一致)到值的其他Web服务可以(根据它自己的业务逻辑)处理。要做到这一点,它在很大程度上依赖于存储在Web.config文件中的数据。

我测试了直接(启动Web服务调用和使用Web浏览器页面上自动生成网页的Web方法)和一切工作正常。

现在,我需要建立一个测试应用(也是在Visual Studio中,框架4.7.1)来调用相同的Web方法。在第一次测试它,我注意到,Web服务试图访问测试应用程序的配置文件,而不是自己的(如在Can't read Web.config with ConfigurationManager.AppSettings描述)。

因此,我创建在Web.config的的applicationSettings部分,然后从所有的appSettings将数据移动到它。它工作得很好。

然而,现在我注意到,同样的事情发生与自定义部分。其中之一是这样的:

<configSections>
    <section name="jobTypeLists" type="AdelSoft_WS_FRA.JobTypesSection" />
</configSections>


<jobTypeLists>
    <jobTypes>
        <jobType codeCustomerType="A" codeJobType="JobForA" />
        <jobType codeCustomerType="B" codeJobType="JobForB" />
    </jobTypes>
</jobTypeLists>

我可以看到这样的结构可以融入自己的.settings文件,但我有另外一个就是要复杂得多。 (喜欢的文本节点最多可以有四个祖)。为了保持这个短上下的,我现在不提供,但它可以很容易地安排。

从测试的应用程序调用时ConfigurationManager.GetSection("jobTypeLists")返回null。同样的,WebConfigurationManager.GetSection("jobTypeLists")

我也试着访问与ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)配置文件,但我似乎无法找到我的部分在它返回的配置对象。

我不知道这意味着什么,但配置对象的FilePath属性包含“C:\文件夹\ InnerFolder \ WebServiceFolder \ web.config.config”。为什么本次“的.config”?我尝试了相同的字符串传递给ConfigurationManager.OpenExeConfiguration(),没有“的.config”扩展:它返回null。 (因为它应该,我的感觉。)

配置对象具有10个组和22层的部分,这是我不能从使正面或反面。同样,我可以列出他们。

visual-studio web-services web-config custom-sections
1个回答
0
投票

实际上,有两种方法用于Visual Studio项目中引用Web服务:作为一个经常引用(像使用任何其他项目)或Web引用。

我用的是前者,而在这一方面我的错误。

引用Web服务,我就开始了,从复制它打开浏览器窗口的URL,并粘贴入“URL”文本框中,从我的测试应用程序中的“添加Web引用”窗口。从那里,它工作得很好。

(顺便说一句,我一直定期基准为好,因为我使用的是从Web服务的一些常量来处理返回值。)

© www.soinside.com 2019 - 2024. All rights reserved.