Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF错误-';无法获取元数据';_.net_Wcf_Wcf Binding_Wcf Configuration - Fatal编程技术网

.net WCF错误-';无法获取元数据';

.net WCF错误-';无法获取元数据';,.net,wcf,wcf-binding,wcf-configuration,.net,Wcf,Wcf Binding,Wcf Configuration,我正在开发我的第一个WCF服务,在尝试在VisualStudio内部启动该服务时出错。因此,它将在卡西尼号下运行 错误是: Error: Cannot obtain Metadata from http://localhost:1393/BEService.svc 这是我的配置 <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"&

我正在开发我的第一个WCF服务,在尝试在VisualStudio内部启动该服务时出错。因此,它将在卡西尼号下运行

错误是:

Error: Cannot obtain Metadata from http://localhost:1393/BEService.svc
这是我的配置

         <behaviors>
        <serviceBehaviors>
            <behavior name="metadataBehavior">
                <serviceMetadata httpGetEnabled="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service behaviorConfiguration="metadataBehavior" name="DataServices.BEService">
            <endpoint address="" binding="basicHttpBinding" contract="DataServices.IBEService" />
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:1393" />
                </baseAddresses>
            </host>
        </service>
    </services>
下面是实现它的类:

public class BEService : IBEService
    {

        public string Get271EDI(string EDI, Enums.EDIRequestor requestor)
        {
            return "this is a test";
        }
    }

我遗漏了什么?

也许我弄错了,但我认为当端点为空或相对时,您需要为服务使用基址,而您不使用IIS,不是吗

<host>
   <baseAddresses>
       <add baseAddress="http://localhost:1393/MyService"/>
   </baseAddresses>
</host>


编辑:您应该更详细地检查您得到的错误。我认为有一些内部细节可以帮助你解决这个案子。可能是您的实现中的某些内容不符合WCF规则。

更改WCF配置时,编辑器将所有配置移动到app.config文件中。然而,我读到的很多文章都引用了web.config中的配置。因此,我将它们移动到web.config并删除了app.config。一切都开始起作用了。然后,我遇到了一个问题,它回答了我关于何时使用web.config vs app.config的问题。

您是否有一个定义合同的接口,以及一个实现它的类?如果是,请发布该代码好吗?问题可能与在Cassini上运行有关吗?可能与Cassini有关,因为根据,Cassini在每个实例上分配了一个新的端口号,这将使您的端点无效。尝试此操作时出现了相同的错误。更新问题以显示更改。将阅读您的链接。@BillMartin您的更改看起来不像Cristi建议的那样。您缺少了/MyService/部分。你确定要加上那个吗?
<host>
   <baseAddresses>
       <add baseAddress="http://localhost:1393/MyService"/>
   </baseAddresses>
</host>