0

在我的 Web 应用程序中,我有一个服务引用(不是 Web 服务引用)。

[DebuggerStepThrough]
[GeneratedCode("System.ServiceModel", "4.0.0.0")]
public partial class LoginClient : ClientBase<Login.LoginClient>, Login.LoginSvc
{            
    public LoginClient() {
        EndpointAddress address = new EndpointAddress(ConfigurationManager.AppSettings["login_svc"]);
        this.Endpoint.Binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
        this.Endpoint.Address = address; 
    }
}

基本上,我在 AppSettings 中有“login_svc”。但是,它会引发流动异常:

我不想将服务配置添加到 web.config system.servicemodel...。相反,我只想将 appsettings 用于 url。我该怎么做呢?

4

1 回答 1

1

与其尝试在构造函数中执行此操作,不如只使用在客户端应用程序中实例化代理时已经可用的重载构造函数之一。例如,

        MyService.Service1Client proxy = new MyService.Service1Client(
            new BasicHttpBinding(), 
            new EndpointAddress("<YOUR ENDPOINT ADDRESS>"));

此外,不建议像这样编辑自动生成的代码,因为如果您更新服务引用,那么这些更改将丢失,因为此时会重新生成 Reference.cs 文件。当然,您可以复制 Reference.cs 并将其作为您自己管理的项目中的一个文件。目前尚不清楚您是否这样做,但只是想提一下以防万一。

于 2013-08-15T17:28:25.320 回答