Jac*_*eja 7 wcf wcf-data-services
当我将WCF数据服务部署到生产主机时,我开始收到以下错误(或类似,具体取决于哪些身份验证方案处于活动状态):
IIS指定了身份验证方案"Basic,Anonymous",但绑定仅支持一种身份验证方案的规范.有效的身份验证方案是Digest,Negotiate,NTLM,Basic或Anonymous.更改IIS设置,以便仅使用单个身份验证方案.
显然,WCF数据服务(通常是WCF?)无法处理多次激活的身份验证方案.
好的,所以我知道我可以通过IIS控制面板在Web应用程序上禁用所有但一个身份验证方案....通过支持请求!!
有没有办法在web.config中的每个服务级别指定一个身份验证方案?
我认为这可能会像改变那样直接<system.serviceModel>但是......事实证明,WCF数据服务不会在Web配置中自行配置.如果你看一下DataService<>它没有实现的类,[ServiceContract]你就不能在<service><endpoint>...中引用它...我认为通过XML更改其配置需要它.
PS我们的主机使用的是II6,但IIS6和IIS7的两种解决方案都很受欢迎.
dmp*_*lla 16
首先,可以在Web配置文件中配置数据服务.DataService使用的合同称为System.Data.Services.IRequestHandler.
您可以在Web配置文件中执行以下操作来配置它.
在system.servicemodel元素的Service标记上添加
<service name="{you service type name including the namespace i.e. myapplication.myservice}">
<endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler">
</endpoint>
</service>
Run Code Online (Sandbox Code Playgroud)
在那之后,您可以使用标准WCF配置元素开始配置所有方式.
其次,要为IIS中的特定服务启用或禁用身份验证方法,您可以执行以下操作:
在IIS的管理单元中右键单击您的服务文件(即yourservice.svc),然后单击属性.进入属性后,转到文件安全性选项卡,然后选择身份验证和访问控制组框中的编辑按钮.之后就像在IIS中设置目录安全性一样.
根据任何故障排除的最后一个建议,重要的是启用wcf诊断,同时使用xml配置配置,使用WCF编写,数据服务日志记录是根据wcf丰富且非常丰富的信息.
您可以在WCF管理和诊断中找到更多相关信息
我希望我能够帮助你解决问题
让我知道事情是怎么回事.
问候
丹尼尔波特拉
更新:
你好Schneider
要在下面的xml中指定身份验证方案
以Windows身份验证为例
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="MyBindingName" >
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="{you service type name including the namespace i.e. myapplication.myservice}">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
有关其他类型的身份验证,请查看MSDN库以获取示例
| 归档时间: |
|
| 查看次数: |
6915 次 |
| 最近记录: |