web-services - 网页引用配置问题

标签 web-services web-config asmx web-reference

我正在努力解决如何将 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 个问题和博客文章。

最佳答案

一些资源提到您需要创建一个设置并且需要在您的代码中更改 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>

关于web-services - 网页引用配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624640/

相关文章:

java - 命令提示符中无法识别“wsimport”错误

asp.net - 在 web.config 中存储值 - appSettings 或 configSection - 哪个更有效?

web-services - 如何查看 Tomcat 上可用的 Web 服务?

c# - 在调用 ASMX Web 服务时保持 session

asp.net - 静态文件上的间歇性 401 和 302 错误

asp.net - 定义 ASP.NET SOAP Web 服务响应

c# - 类库、Silverlight 和 Web 服务

.net - Web 服务更改方法响应而不通知客户端

jquery - 仍然收到 "Request format is unrecognized for URL unexpectedly ending in..."

asp.net - IIS 7.5 和 ASP.Net 中的身份验证设置有什么区别?