服务引用命名空间/约定名称问题



我已经创建了一个服务引用。当我尝试给它一个ServiceSoap的名称空间时,它会将名称空间生成为ServiceSoap。ServiceSoap,因此,我为客户端部分获得了一个包含以下内容的app.config:

<client>
<endpoint address="http://blablabla/_mmwebext/mmwebext.dll?Soap"
binding="basicHttpBinding" bindingConfiguration="ServiceSoap"
contract="ServiceSoap.ServiceSoap" name="ServiceSoap" />
<endpoint address="http://blablabla/_mmwebext/mmwebext.dll?Soap"
binding="customBinding" bindingConfiguration="ServiceSoap12"
contract="ServiceSoap.ServiceSoap" name="ServiceSoap12" />
</client>

但是,当我尝试实例化一个新的ServiceSoapClient对象时,我会返回以下错误:

在ServiceModel客户端配置节中找不到名为"ServiceSoap"且约定为"ServiceSoap"的终结点元素。这可能是因为找不到应用程序的配置文件,或者因为在客户端元素中找不到此名称匹配的终结点元素。

如果我尝试指定名称和端点:

_mm = new ServiceSoapClient("ServiceSoap", endpoint.AbsoluteUri.ToString());

或者,如果我尝试使用无参数构造函数:_mm=新的ServiceSoapClient();

我似乎需要能够:1)传入约定名称,或者2)强制服务引用停止添加ServiceSoap。在我指定的名称前面作为名称空间。我看不到任何一种方法(构造函数不接受约定名称的参数,也看不到阻止命名空间创建将ServiceSoap转换为ServiceSoap.ServiceSoap.

这里的问题是这行:

[System.ServiceModel.ServiceContractAttribute(命名空间="http://menandmice.com/webservices/",ConfigurationName="ServiceSoap")]

需要更改为:

[System.ServiceModel.ServiceContractAttribute(命名空间="http://menandmice.com/webservices/",ConfigurationName=">ServiceSoap。ServiceSoap")]

因此,"ConfigurationName"实际上意味着合同名称,或者至少需要与app.config.中的合同名称相匹配

最新更新