在浏览器中键入url时,自托管WCF服务不工作?

在浏览器中键入url时,自托管WCF服务不工作?,wcf,c#-3.0,Wcf,C# 3.0,我是WCF的新手。我制作了一个简单的自托管服务并添加了app.config,但当我在浏览器中键入地址时,它不会显示我们创建服务时获得的服务页面http://localhost:8067/WCFService它没有显示我们运行服务时显示的服务 但是,当我尝试在publicstaticvoidmain而不是app.config中添加基本服务时,效果很好,我没有得到yy??有人能帮我吗 以下是手动添加的app.config文件: <configuration> <sy

我是WCF的新手。我制作了一个简单的自托管服务并添加了
app.config
,但当我在浏览器中键入地址时,它不会显示我们创建服务时获得的服务页面
http://localhost:8067/WCFService
它没有显示我们运行服务时显示的服务

但是,当我尝试在
publicstaticvoidmain
而不是
app.config
中添加基本服务时,效果很好,我没有得到yy??有人能帮我吗

以下是手动添加的
app.config
文件:

<configuration>     
   <system.serviceModel>     
      <services>     
         <service name="SelfHostedWCFService.WCFService">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService">     
            </endpoint>     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 
namespace SelfHostedWCFService     
{      
    [ServiceContract]     
    interface IWCFService      
    {     
        [OperationContract]     
        int Add(int a, int b);      
        [OperationContract]     
        int Sub(int a, int b);      
        [OperationContract]     
        int Mul(int a, int b);
    }     
} 
namespace SelfHostedWCFService
{     
    class WCFService:IWCFService     
    {     
         public int Add(int a, int b) { return (a + b); }      
         public int Sub(int a, int b) { return (a - b); }      
         public int Mul(int a, int b) { return (a * b); } 
    }     
} 
以下是手动添加的接口文件:

<configuration>     
   <system.serviceModel>     
      <services>     
         <service name="SelfHostedWCFService.WCFService">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService">     
            </endpoint>     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 
namespace SelfHostedWCFService     
{      
    [ServiceContract]     
    interface IWCFService      
    {     
        [OperationContract]     
        int Add(int a, int b);      
        [OperationContract]     
        int Sub(int a, int b);      
        [OperationContract]     
        int Mul(int a, int b);
    }     
} 
namespace SelfHostedWCFService
{     
    class WCFService:IWCFService     
    {     
         public int Add(int a, int b) { return (a + b); }      
         public int Sub(int a, int b) { return (a - b); }      
         public int Mul(int a, int b) { return (a * b); } 
    }     
} 
以下是手动添加的
service.cs
文件:

<configuration>     
   <system.serviceModel>     
      <services>     
         <service name="SelfHostedWCFService.WCFService">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService">     
            </endpoint>     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 
namespace SelfHostedWCFService     
{      
    [ServiceContract]     
    interface IWCFService      
    {     
        [OperationContract]     
        int Add(int a, int b);      
        [OperationContract]     
        int Sub(int a, int b);      
        [OperationContract]     
        int Mul(int a, int b);
    }     
} 
namespace SelfHostedWCFService
{     
    class WCFService:IWCFService     
    {     
         public int Add(int a, int b) { return (a + b); }      
         public int Sub(int a, int b) { return (a - b); }      
         public int Mul(int a, int b) { return (a * b); } 
    }     
} 

我的
app.config
或其他概念有什么问题吗???

乍一看一切都正常-你确定服务没有运行吗

如果未发布任何元数据,则无法使用测试服务,也无法为其生成客户端代理

因此,我建议将服务元数据发布添加到您的服务中,这样做,我就能够测试您的代码,而且它工作得非常完美

要添加元数据,请将配置更改为:

<configuration>     
   <system.serviceModel>     
      <behaviors>
          <serviceBehaviors>
             <behavior name="Metadata">
                <serviceMetadata />
             </behavior>
          </serviceBehaviors>
      </behaviors>
      <services>     
         <service name="SelfHostedWCFService.WCFService" behaviorConfiguration="Metadata">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService" />     
            <endpoint address="http://localhost:8067/WCFService/mex"
                      binding="mexHttpBinding" contract="IMetadataExchange" />     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 


即使使用此配置,您在导航到URL时也不会看到任何服务页面-但服务已启动并正在运行-只需使用并亲自查看即可

谢谢。。。。。它需要用于元数据交换的端点和基址。成功了!!