无法在ServiceModel客户端配置部分中找到引用合同ServiceReference1.Service1Soap的默认端点元素

时间:2013-02-12 10:27:03

标签: asp.net web-services endpoint

我有一个问题与本论坛中的很多其他问题非常相似,但是这些解决方案很适合我 - 也许是因为我没有得到它们。

我有一个非常简单的ASP.NET Web服务,只有4种简单的方法。为了测试它,我从一个新创建的控制台应用程序连接它,它工作绝对完美 - 只是添加了URL并让Visual Studio生成客户端代码(它生成了2个端点,我需要删除1才能使它成为工作,我猜这不重要。)

然后我尝试在User Control项目中做同样的事情(意味着它是一个类库)。然后它会突然抛出异常,并在此问题的标题中显示一条消息。

我在Visual Studio中本地运行用户控件项目,因为它仍在测试中。

我甚至尝试将服务模型部分从其他项目(它工作的地方)复制/粘贴到我的用户控件项目的app.config中 - 仍然无效。

有什么想法吗?

编辑:这是app.config文件的servicemodel部分

  <system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="Service1Soap" />
  </basicHttpBinding>
  <customBinding>
    <binding name="Service1Soap12">
      <textMessageEncoding messageVersion="Soap12" />
      <httpTransport />
    </binding>
  </customBinding>
</bindings>
<client>
  <endpoint address="http://localhost:49737/Service1.asmx" binding="basicHttpBinding"
    bindingConfiguration="Service1Soap" contract="ServiceReference1.Service1Soap"
    name="Service1Soap" />
</client>

2 个答案:

答案 0 :(得分:1)

对我来说,将serviceModel部分从我的类库复制到ASP.Net网站的web.config后,我仍然收到此错误。

一段时间后,我意识到你必须完全限定端点的contract属性,因为该服务位于具有不同命名空间的类库中。

即。在配置里面说... contract =“MyService.SoapService”等你需要完全限定这个... contract =“MyClassLibraryName.Namespace.MyService.SoapService”。

康纳

答案 1 :(得分:0)

@kevin johnson:我不确定'用户控制项目'是什么意思。将服务模型配置从工作项目粘贴到你的app.config不会工作,因为当你必须使用网络服务时,你要么必须使用app配置文件添加引用文件,该文件将从 svcutil.exe 生成,或者将Web服务添加到现有项目作为“服务引用”,永远不要尝试更改配置文件(应用程序。 config或web.config)除非你知道你在做什么。