有没有办法在配置而不是代码中设置Web服务的命名空间?

时间:2010-06-16 15:33:16

标签: c# vb.net asmx web-config web-services

目前我们在代码<System.Web.Services.WebService(Namespace:="https://ourservice/")>中使用来设置命名空间,这可以在web.config中完成吗?我看了但找不到哪里?

VS2008,ASMX网络服务。

3 个答案:

答案 0 :(得分:6)

最重要的问题还没有被问到:为什么你认为你想这样做。

大多数提出此问题的人都认为命名空间与部署服务的URL有关。他们彼此没有任何关系。事实上,命名空间可能是像“urn:services.yourcompany.com”这样的URI,它显然不是互联网上的一个位置。

答案 1 :(得分:0)

你试过这个吗?

 <Services>
    <asp:ServiceReference
       path="https://ourservice" />
  </Services>

另一个选项可能是在web.config文件中创建对,并使用ConfigurationManager类读取该部分。

<appSettings>
      <add key="OurService" 
      value="https://ourservice"/>
</appSettings>

答案 2 :(得分:0)

我认为你不能把它放在配置文件中(虽然我从不打扰检查)。

如果您只想将其存储在中央位置,则可以始终使用常量:

internal sealed class ServiceConstants {
   internal const string Namespace = "urn:example.com/~coolest/service/ever";
} 
[ServiceContract(Namespace=ServiceConstants.Namespace)]
[WebService(Namespace=ServiceConstants.Namespace)]
public sealed class MyService {}