无法从web访问WCF
本文关键字:访问 WCF web | 更新日期: 2023-09-27 18:15:54
我已经导入了一个wcf服务,它可以从本地主机访问,但是当我使用我的公共ip地址时,我无法到达它。
这是我的网页内容。配置文件。
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true"
targetFramework="4.0" />
</system.web>
<system.serviceModel>
<extensions>
<bindingExtensions>
<add name="clearUsernameBinding"
type="WebServices20.BindingExtenions.ClearUsernameCollectionElement, ClearUsernameBinding" />
</bindingExtensions>
<!-- Add the inspector attribute as a behavior for displaying SOAP XML packets -->
<behaviorExtensions>
<add name="consoleOutputBehavior"
type="WcfService1.ConsoleOutputBehaviorExtensionElement, WcfService1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<bindings>
<clearUsernameBinding>
<binding name="myClearUsernameBinding"
messageVersion="Soap12" />
</clearUsernameBinding>
</bindings>
<behaviors>
<!-- Add the inspector behavior -->
<endpointBehaviors>
<behavior name="inspectorBehavior">
<consoleOutputBehavior />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="HelloWorldServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WcfService1.CustomUserNameValidator, WcfService1" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="HelloWorldServiceBehavior"
name="WcfService1.HelloWorldService">
<endpoint address=""
binding="clearUsernameBinding"
bindingConfiguration="myClearUsernameBinding"
contract="WcfService1.IHelloWorldService" />
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
我有一个控制台应用程序,能够与它通信,但只能与本地主机。
这就是我如何能够得到它。它在端口14946上运行,并将该端口转发到运行该服务的计算机。它被托管在IIS上。
http://localhost: 14946/HelloWorldService.svc吗?singleWsd
如果我使用:{publicIP}:14946/HelloWorldService.svc?singleWsd我得到一个500内部错误,这意味着这是一个配置问题,但我似乎无法确定问题是什么。
编辑:我现在收到这个错误。
类型为"WcfService1"。在ServiceHost指令中作为Service属性值提供的HelloWorldService找不到。我现在可以通过网络访问它,但现在收到此错误。为了修复之前的错误,我必须:去添加删除功能2。)扩展MS . net框架3)打开WCF的HTTP和非HTTP激活
谢谢,
如果您正确地将其托管在IIS中,您可以直接删除端点中的端口并直接访问它,例如:( add virtual application if necessary )
http://<public ip>/HelloWorldService.svc?singleWsd
它在您的本地主机上工作,因为它是在IIS Express的调试模式下托管的,并自动分配了该端口。