动态更新webservice的Web配置

时间:2015-05-12 09:01:46

标签: c# web-services asmx

我在Web应用程序中配置的Web服务很少。在那里,我已将所有Web服务设置为动态。所以我可以在web.config文件中看到所有的网络服务。

例如:

<applicationSettings>
    <WebInterface.Properties.Settings>
      <setting name="WebInterface_CustomerCard_CustomerCard_Service"
       serializeAs="String">
        <value>http://localhost:7047/DynamicsNAV/WS/Supratechnic%20(M)%20Sdn%20Bhd/Page/CustomerCard</value>
      </setting>
</WebInterface.Properties.Settings>
  </applicationSettings>

在登录页面中,我需要在运行时动态更改这些Web服务,并在登录时将其保存在web.config中。如何在后面的代码中更改它?

1 个答案:

答案 0 :(得分:1)

Web.config不是这样的更改的正确位置,因为它在所有用户之间共享。您的应用程序可以被多个用户同时使用,因此这种更改会影响其中的许多用户,而不仅仅是一个用户。在安全的环境中,您的应用程序无论如何都无法写入web.config - 正如@PanagiotisKanavos所指出的那样 - 写入它会立即回收应用程序池。

实现此目的的更好方法是在将Web服务客户端实例化为构造函数参数时提供URL。您可以在web.config中添加第二个URL,也可以在AppSettings部分中添加。在登录页面中,您可以确定哪个URL是适合用户的URL,并将其保存在特定于用户的位置,例如在会话状态。每当您创建客户端实例时,都会检索URL并将其提供给构造函数。