也许你可以帮我设置我的WCF服务。
首先,这是我的配置文件:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings />
<services>
<service name="AuthenticatorService.Authenticator">
<endpoint address="auth" binding="basicHttpBinding" bindingConfiguration=""
name="AuthEndpoint" contract="AuthInterface.IAuthenticator" />
<endpoint address="mex" binding="mexHttpBinding" name="MetadataEndpoint"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
这就是我从c#调用我的服务的方式:
//This creates a link to the WCF service using basicHttpBingind
httpFactory = new ChannelFactory<IAuthenticator>(new BasicHttpBinding(), new EndpointAddress("http://myUrl/auth.svc"));
httpProxy = httpFactory.CreateChannel();
当我在localhost上执行此操作时它工作正常,但现在它一直告诉我没有找到端点。
此外,服务器生成以下错误:
System.ServiceModel.EndpointNotFoundException:没有频道主动收听'http://myURL/auth.svc/$metadata'。这通常是由错误的地址URI引起的。确保将消息发送到的地址与服务正在侦听的地址匹配。
我真的很困惑,我不知道为什么会这样。我是否需要为元数据交换创建另一个服务文件?
我是否需要设置baseAddress?
由于
答案 0 :(得分:0)
您是如何部署该服务的?我假设该服务正在您的盒子上的IIS中运行 - 您是否尝试在浏览器中访问服务URL(http://myUrl/auth.svc)以查看它是否确实已启动?