我正在努力解决如何将网址配置为网络参考。
情况就是这样。我有: 旧的asp.net webservices< ----- c#项目编译成dll< -----引用dll的网站(c#项目以前不在那里,但我将所有代码重构为单独的项目)
因此,网站代码调用c#项目的代码来获取结果,然后调用Web服务。
在c#项目中添加Web引用时,我输入了webservices的网址位置(http://192.168.10.1/TestServices.asmx?wsdl。然后生成一个包含webservices网址的app.config文件。
如果我将web引用设置为static而不是不应该使用config,那就可以了。现在,如果我将web引用设置为动态,则应该使用配置,但由于这是一个正在编译为dll的项目,并且该网站没有app.config,而是我将配置从app.config设置为my web.config appSettings节点我将Web服务的URL更改为另一个(http://192.168.10.2/TestServices.asmx。
在c#项目中添加Web引用时,网站仍然会从Web引用指向的旧URL获取结果,因此看起来在URL Behavious设置为Dynamic时未使用配置设置。
我在这里错过了一些微不足道的东西吗?
这是来自app.config的内容:
<applicationSettings>
<XXXX.Properties.Settings>
<setting name="XXXX_TestServices_TestServices" serializeAs="String">
<value>http://192.168.10.1/TestServices.asmx</value>
</setting>
</XXXX.Properties.Settings>
</applicationSettings>
这就是我在web.config中的内容:
<appSettings>
<add key="XXXX_TestServices_TestServices" value="http://192.168.10.2/TestServices.asmx" />
</appSettings>
所以,现在它总是有趣和内容丰富/教育时,在打字问题和双重检查和搜索相关的问题,你终于自己解决问题..无论如何我发布它的答案,因为我没有找到确切的在一个地方回答,但结合其他2个问题和博客文章。
答案 0 :(得分:5)
有些资源提到您需要创建设置并需要在代码中更改Web服务代理对象的url属性。这不是必需的,您只需要以正确的方式编辑您的Web配置。
网址不会直接从网站引用网络服务时进入web.config的appSettings部分。
相反,您需要从dll项目中生成的app.config复制整个配置代码,包括定义用于设置正确URL的applicationSettings节点的sectiongroup配置。
对于此特定示例,其中包含web.config中的以下配置代码:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="XXXX.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
...
</configuration>
<applicationSettings>
<XXXX.Properties.Settings>
<setting name="XXXX_TestServices_TestServices" serializeAs="String">
<value>http://192.168.10.2/TestServices.asmx</value>
</setting>
</XXXX.Properties.Settings>
</applicationSettings>