Web Services 在Web配置中为Web服务使用设置变量

dxpyg8gm  于 2022-11-15  发布在  其他
关注(0)|答案(4)|浏览(141)

我在谷歌上搜索了几次,没有找到任何东西,所以我想在这里问一下。
我正在开发我们的内部CMS,我注意到我们在调试时会返回实时数据,这是因为我们的Web服务而不是我想要的开发数据。在我们的开发CMS网站上没有这样做。但我们正在尝试在localhost上进行所有开发。有没有办法在我们的Web配置中为URL设置一个环境变量,以便CMS指向dev数据库而不是所引用的live数据库在wsdl文件中?

vc6uscn9

vc6uscn91#

您可以使用Web config的appSettings部分来获取配置信息。
在Web.config的配置节中,您将找到appSettings节:

<appSettings>
    <add key="Key" value="Some Value"/>
  </appSettings>

在程式码中,您可以像这样读入值:

var someValue = ConfigurationManager.AppSettings["Key"];
brtdzjyr

brtdzjyr2#

+1表示Dan存储URL的方法。要在运行时使用此URL,只需使用web.config中的值更新Web服务代理对象的URL属性。

MyClientClass o = new MyClientClass();
o.Url = varFromWebConfig;
o.MyWebMethod();
krugob8w

krugob8w3#

实际上,我的一位同事建议了一个解决这个问题的替代方法,我觉得这个方法更好:在服务器端修复它,而不是像我一直在尝试的客户端。他的建议是在我们所有服务器上的IIS中创建一个子域,指向Web服务文件夹,然后将相应Web服务器的主机文件放在我的本地机器上。这似乎是我的理想解决方案,因为它不会“不需要像客户端解决方案那样更改所有当前的Web服务代理对象,只需更改App_WebReferences中的Web服务使用即可。

wvyml7n5

wvyml7n54#

是!!!使用Web.config转换
Web.config包含调试时将在IDE中运行得配置:

<configuration>
    <appSettings>
        <add key="Service.Name" value="http://debugserverURI/Service.asmx"/>
    </appSettings>
</configuration>

在“发布”模式下发布时,将应用Web.Release.config中的转换:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
           <appSettings>
              <!--point to production server -->
              <add key="Service.Name" value="http://PRODUCTIONserverURI/Service.asmx"
                 xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
          </appSettings>
 </configuration>

如果同时支持测试服务器和生产服务器,则可以对Web.[whatever_build_you_want].config执行相同的操作。

相关问题