0

您好,试图让我的绑定通过互联网工作。我正在使用 wsHttpBinding 并试图让它与肥皂一起使用。我已经尝试过 NetTcpBinding 并让我的函数通过我的公共 IP 在互联网上的 wcftestclient 中显示,并将我的端口转发到正确的计算机,但我无法调用任何失败的函数: 在此处输入图像描述

而且我不认为肥皂可以与 NetTcpBinding 一起使用,所以我一直在尝试使这个配置工作

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service
        behaviorConfiguration="VenatoWCF.Behavior"
        name="VenatoWCF.WCFService">
        <endpoint
          address=""
          binding="wsHttpBinding"
          contract="VenatoWCF.IService"
          bindingConfiguration="Binding">
        </endpoint>
        <endpoint
          address="mex"
          binding="mexHttpBinding"
          contract="IMetadataExchange">
        </endpoint>

        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8734/WCF/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="VenatoWCF.Behavior">
          <serviceMetadata httpGetEnabled="true" />
          <useRequestHeadersForMetadataAddress />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <wsHttpBinding>
        <binding name="Binding" >
          <security mode="Message">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>
</configuration>

这可以被肥皂消耗,但这个配置我无法用肥皂或 wcftestclient 得到任何响应。

肥皂:致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-错误:解析 WSDL:无法从“ http://(My External ip):8734/WCF/?wsdl”加载:无法加载外部实体“ http ://(我的外部 ip):8734/WCF/?wsdl"

谢谢你的回答

EDIT1 抱歉错误的配置文件给那些速度足够快的人看:/

编辑2

在我的 wsdl 文件中发现,在底部我<soap:address location="https://dendei:8734/WCF/" />发现一个应该是一个肥皂连接也需要"https://(my external ip):8734/WCF/"

我怎样才能改变这个?在配置文件中?还是在我的程序中?

编辑3

在搜索UseRequestHeadersForMetadataAddressBehavior时偶然发现了这个网站

并且在本地解决了它,所以我可以在我的基地址中有 localhost<add baseAddress="https://localhost:8734/WCF/"/>

它和soap一起工作,所以我也找回了它试图连接的地址

并在网上工作:)

但是使用 UseRequestHeadersForMetadataAddressBehavior 你必须使用 .NET 4.0

4

2 回答 2

0

您的错误消息说您使用此 Urlhttp://(My External ip):8734/WCF/?wsdl通过 WcfTestClient 连接到您的服务。但是您在配置文件中定义了不同的 Url。看看你的baseAddress。试试这个网址http://(My External ip):8734/Venato/mex?wsdl

于 2013-01-10T16:20:50.053 回答
0

好吧,如果我切换到 4.0 并使用UseRequestHeadersForMetadataAddressBehavior而不是尝试访问 wsdl 文件并更改指向本地地址的 soap:address 仍然不知道该怎么做,那么它就可以工作了。:)

并且连接问题在我的计算机防火墙中阻止了连接路由器接受了连接并且我自己的计算机阻止了它xD

将使用对我有用的配置来编辑我的任务欢呼!

于 2013-01-11T14:56:27.353 回答