5

我正在努力解决如何将 URL 配置为 Web 参考。

情况就是这样。我有:旧的 asp.net webservices <----- 编译为 dll 的 c# 项目 <----- 引用 dll 的网站(以前不存在 c# 项目,但我将所有代码重构为单独项目)

所以网站代码调用c#项目的代码来获取结果,结果又调用了webservice。

在 c# 项目中添加 Web 引用时,我输入了 Web 服务的 url 位置(http://192.168.10.1/TestServices.asmx?wsdl。然后生成一个包含 Web 服务 url 的 app.config 文件。

如果我将 Web 引用设置为静态而不是不应使用配置,那是有效的。现在,如果我将 web 引用设置为动态,则应该使用配置,但由于这是一个正在编译为 dll 的项目,并且网站没有 app.config,而是我将 app.config 中的配置设置为我的web.config appSettings 节点,我将 Web 服务的 url 更改为另一个(http://192.168.10.2/TestServices.asmx

该网站仍然从在 c# 项目中添加 Web 引用时指向的旧 URL 获取结果,因此当 URL 行为设置为动态时,似乎未使用配置设置。

我可能在这里遗漏了一些微不足道的东西吗?

这是 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 个问题和博客文章。

4

1 回答 1

7

一些资源提到您需要创建一个设置并且需要在您的代码中更改 Web 服务代理对象的 url 属性。这不是必需的,您只需要以正确的方式编辑您的网络配置。

该 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>
于 2012-09-27T15:14:14.347 回答