在ServiceModel客户端配置部分中找不到引用约定ServiceReference1.Service1Soap的默



我有一个问题,与论坛中的许多其他问题非常相似,但没有一个解决方案对我有效——也许是因为我不明白。

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

然后我尝试在用户控制项目中做同样的事情(意思是它是一个类库)。然后它突然抛出一个异常,并在这个问题的标题中显示一条类似于on的消息。

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

我甚至尝试将服务模型部分从另一个项目(它工作的地方)复制/粘贴到用户控制项目的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>

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

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

也就是说,在配置中,is说。。。contract="MyService.SoapService"etc您需要完全符合此条件。。。contract="MyClassLibraryName.Namespace.MyService.SoapService".

Conor

@kevin johnson:我不知道你说的"用户控制项目"是什么意思。将服务模型配置从工作项目复制粘贴到你的app.config是行不通的,因为当你必须使用web服务时,您必须使用将从svcutil.exe生成的app-config文件添加引用文件,或者通过将web服务作为"服务引用"添加到现有项目,除非您知道自己在做什么,否则永远不要尝试更改配置文件(app.config或web.config)。

最新更新