Nea*_*alR 3 c# wcf wshttpbinding wcf-wshttpbinding asp.net-mvc-3
我正在尝试在我的WCF Web服务中创建第二个端点.我可以通过将域URL放在浏览器中来显示新端点的"快乐页面",因此我知道IIS可以正确地使用我的用户帐户找到该服务.
但是,如果我尝试运行调用该服务的网页,我将收到以下错误
The binding at system.serviceModel/bindings/wsHttpBinding does not have a configured
binding named 'WSHttpBinding_IMonetToDss'. This is an invalid value for
bindingConfiguration. (D:\webcontent\Monet\web.config line 178).
Run Code Online (Sandbox Code Playgroud)
由于当我创建服务引用时,Visual Studio的这一部分是由Visual Studio自动生成的,因此它的bindingConfiguration值是WSHttpBinding_IMonetToDss......它说它不应该是.
以下是从web.config中提取的两个enpoints.第一个端点/OKeeffe/OKeeffe.svc正常工作.第二个终点/OKeeffe/MonetToDss.svc是问题所在.
<client>
<endpoint address="http://insidesoap.dev.symetra.com/Escher/EscherService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IEscherService"
contract="Escher.IEscherService" name="WSHttpBinding_IEscherService" />
<endpoint address="http://insideapps.dev.symetra.com/OKeeffe/OKeeffe.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAgentPayments"
contract="AgentPayments.IAgentPayments" name="WSHttpBinding_IAgentPayments">
<identity>
<userPrincipalName value="s.AgentData.dev" />
</identity>
</endpoint>
<endpoint address="http://insideapps.dev.symetra.com/OKeeffe/MonetToDss.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMonetToDss"
contract="MonetToDss.IMonetToDss" name="WSHttpBinding_IMonetToDss">
<identity>
<userPrincipalName value="s.AgentData.dev" />
</identity>
</endpoint>
</client>
Run Code Online (Sandbox Code Playgroud)
编辑
这是system.serviceModelWeb服务配置文件的一部分
<system.serviceModel>
<services>
<service name="OKeeffeDataService.MonetToDss"
behaviorConfiguration="MonetToDssBehaviors" >
<endpoint address=""
binding="wsHttpBinding"
contract="OKeeffeDataService.IMonetToDss" />
</service>
<service name="OKeeffeDataService.AgentPayments"
behaviorConfiguration="OKeeffeBehavior" >
<endpoint address=""
binding="wsHttpBinding"
contract="OKeeffeDataService.IAgentPayments" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="OKeeffeBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior name="MonetToDssBehaviors" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
Raj*_*jes 10
你确定你在配置文件中定义了名为"WSHttpBinding_IMonetToDss"的绑定吗?像这样的东西......
<bindings>
<wsHttpBinding name="WSHttpBinding_IMonetToDss">
...
</wsHttpBinding>
<bindings>
Run Code Online (Sandbox Code Playgroud)